On Friday, October 4, 2013 3:24:35 AM UTC+4, Eric Blake wrote: > If you don't have access, then you cannot tell whether the file exists > or not. So you might as well assume it does not exist, and write your > script to error out if a user feeds you a name that you cannot access.
if you have access: - if file exists - backup, if file does not exist - all ok. if you don't have access: - you are not sure if file exists or no, throw error just in case (to ask user to fix permission or file list) Command like "find" warns about permission denied errors, so, probably "find" programmers found a case when not exists vs unaccessible is matters. Also, sometimes -e reports that file exists even if it's unreadable (example below), so one might have expiration that his script properly cathes IO errors. ====== #!/bin/bash # cleanup chmod -R 777 X rm -rf X #/cleanup mkdir X mkdir X/Y touch X/Y/file touch X/f chmod 000 X/Y chmod 000 X/f cat X/Y/file || echo FAIL1 cat X/Y/notafile || echo FAIL2 cat X/f || echo FAIL3 if [ -e X/f ]; then echo X/f exists fi if [ -e X/Y/file ]; then echo X/Y/file exists fi if [ -e X/Y/notafile ]; then echo X/Y/notafile exists fi find X ====== ====== cat: X/Y/file: Permission denied FAIL1 cat: X/Y/notafile: Permission denied FAIL2 cat: X/f: Permission denied FAIL3 X/f exists X X/f X/Y find: `X/Y': Permission denied ======