3 votos

Cómo saber la diferencia entre "No such file or directory" y "Permiso denegado"

Algo no analizar STDERR, pero no puedo pensar en otra manera de decir la diferencia, mediante programación, entre los dos:

$ ls /net/foo.example.com/bar/test
/net/foo.example.com/bar/test: Permission denied
$ ls /sdfsdf
/sdfsdf: No such file or directory

No importa qué comando que trato, ambos parecen devolver el mismo código de error, por lo es un callejón sin salida:

$ ls /net/foo.example.com/bar/test
/net/foo.example.com/bar/test: Permission denied
$ echo $?
2
$ ls /sdfsdf
/sdfsdf: No such file or directory
$ echo $?
2

He probado las distintas pruebas de fichero en perl, pero ambas vuelven los mismos códigos así.

8voto

Michael Hampton Puntos 88271

Probar el archivo en su lugar.

test -e /etc/shadow && echo The file is there

test -f /etc/shadow && echo The file is a file

test -d /etc/shadow && echo Oops, that file is a directory

test -r /etc/shadow && echo I can read the file

test -w /etc/shadow && echo I can write the file

Ver el test Página para otras posibilidades.

1voto

Eltariel Puntos 895
$ test -f /etc/passwd
$ echo $?
0

$ test -f /etc/passwds
$ echo $?
1

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: