Linux
如何使用 sudo 檢查文件是否存在?
我想檢查一個文件是否存在
[ -f /path/to/file/ ]
但是,我以普通使用者身份執行此命令,並且該文件歸 root 所有。我如何使用 sudo 來完成此操作。
sudo [ -f /path/to/file/ ]
不起作用。
您所描述的應該可以正常工作 - 只要您使用絕對路徑,並且
-f
(“File exists and is a regular file”) 確實是您想要執行的測試。
/
我看到您在問題中發布的內容有尾隨-您正在測試目錄嗎?那應該是-d
,或者簡單地說-e
(“存在具有該名稱的東西 - 無論類型如何”)另請注意,除非沿途某些內容不可讀
test
([
)應該能夠告訴您是否存在由 root 擁有的文件(例如[ -f /root/.ssh/known_hosts ]
,可能會失敗,因為 /root/.ssh 目錄不存在(或至少不應該’t be ) 普通使用者可讀。[ -f /etc/crontab ]
應該成功)。