¿Hay una manera rápida y sucia de decir programáticamente, en script de shell o en Perl, si una ruta se encuentra en un sistema de archivos remoto (nfs o similar) o uno local? ¿O es la única forma de hacer esto para analizar/etc/fstab y verificar el tipo de sistema de archivos?¿Cómo puedo saber si un archivo está en un sistema de archivos remoto con Perl?
Respuesta
stat -f -c %T <filename>
debería hacer lo que desee. Es posible que también desee -l
Puede usar "df -T" para obtener el tipo de sistema de archivos para el directorio, o usar la opción -t para limitar la generación de informes a tipos específicos (como nfs) y si vuelve con "no se procesaron los sistemas de archivos", entonces no es uno de los que estás buscando.
df -T $dir | tail -1 | awk '{print $2;}'
No portátil - 'df -T' no funciona en Solaris, por ejemplo. –
Si todos los sistemas de archivos de red usan la semántica de ruta de host: para el nombre del dispositivo, entonces supongo que puede verificar: en el nombre del dispositivo o algo similar. –
En algunos sistemas, el número de dispositivo es negativo para los archivos NFS. Por lo tanto,
print "remote" if (stat($filename))[0] < 0
Si utiliza df
en un directorio para obtener información única del dispositivo que reside en, por ejemplo, para el directorio actual:
df .
Luego, puede analizar la salida, p.
df . | tail -1 | awk '{print $1}'
para obtener el nombre del dispositivo.
He probado lo siguiente en solaris7,8,9 & 10 y parece ser fiable
/bin/df -g <filename> | tail -2 | head -1 | awk '{print $1}'
debe dar usted tiene el tipo FS en lugar de tratar de igualar para un "host: ruta" en tu punto de montaje
- 1. ¿Cómo saber si un archivo está "almacenada en la caché del sistema de archivos"
- 2. ¿Cómo verifica si un archivo está abierto usando Perl?
- 3. ¿Cómo puedo determinar si un archivo está bloqueado con VBS?
- 4. ¿Cómo puedo verificar si un archivo existe en un servidor remoto usando Perl?
- 5. ¿Cómo puedo saber si un archivo está abierto en otra parte de C en Linux?
- 6. ¿Cómo saber si un archivo está comprimido gzip?
- 7. ¿Cómo puedo verificar si un filehandle está abierto en Perl?
- 8. ¿Cómo puedo comprobar si existe un nombre de archivo que coincida con un patrón en Perl?
- 9. ¿Cómo puedo saber si un secuenciador está cerrado?
- 10. ¿Cómo puedo saber si una impresora imprimirá en un archivo?
- 11. ¿Cómo puedo saber si un script Perl se está ejecutando en contexto CGI?
- 12. ¿Cómo puedo saber si STDIN está conectado a un terminal en Perl?
- 13. Cómo saber si un actor está inactivo
- 14. ¿Cómo puedo alinear un archivo remoto?
- 15. ¿Cómo puedo saber si un navegador está en un dispositivo con pantalla táctil con JavaScript?
- 16. En Python, sin usar el sistema de archivos/proc, ¿cómo puedo saber si se está ejecutando un PID determinado?
- 17. ¿Cómo verifico si existe un archivo en un control remoto?
- 18. ¿Cómo puedo representar los enlaces simbólicos de un sistema de archivos en un hash Perl?
- 19. Dentro de un archivo por lotes, ¿cómo puedo saber si se está ejecutando un proceso?
- 20. ¿Cómo puedo saber si mi script de Perl se está ejecutando en Windows?
- 21. Script de shell para saber si un sistema de archivos ya está montado
- 22. ¿Cómo puedo saber si un cliente web está bloqueando anuncios?
- 23. ¿Cómo puedo saber si un proceso se está ejecutando?
- 24. ¿Cómo puedo verificar si existe un archivo en Perl?
- 25. ¿Cómo puedo saber si alguien está falsificando un tipo de archivo? (PHP)
- 26. ¿Cómo puedo saber si un elemento coincide con un selector?
- 27. ¿Cómo saber si un manejador de archivo es un socket?
- 28. Usando JSch, ¿hay alguna forma de saber si existe un archivo remoto sin hacer un ls?
- 29. ¿Cómo puedo verificar si un módulo Perl está instalado?
- 30. ¿Cómo saber si un navegador está en modo "peculiar"?
De nuevo, no es portátil para Solaris (aunque tengo el comando en la máquina, no es un problema estándar). –