我正在撰寫一個 bash shell 腳本,它使用以下命令洗掉檔案
rm abc.xsl
我處理了獲取提示并提供所需的“y”或“n”輸入的情況。
為了驗證檔案是否已被洗掉,我通過以下方式運行 locate 命令來驗證相同
locate */abc.xsl
注意:所需的檔案存在于特定目錄中,因此在我的情況下,此特定命令沒有給我任何其他檔案的地址
我注意到盡管檔案被洗掉了,locate 命令仍然反映了被洗掉檔案的路徑。
我通過手動執行每個必需的命令來除錯問題
財政年
admin@sharad-server$ pwd
/usr/local/myserver/myapplication/lib
admin@sharad-server$ rm abc.xsl
rm: remove write-protected regular file 'abc.xsl'? y
admin@sharad-server$ locate */abc.xsl
/usr/local/myserver/myapplication/lib/abc.xsl
該檔案被洗掉,因為它在我執行 ls 命令和 cat 命令時沒有反映,如下所示
admin@sharad-server$ cat /usr/local/myserver/myapplication/lib/abc.xsl
cat: /usr/local/myserver/myapplication/lib/abc.xsl: No such file or directory
FYR 我的應用程式部署在 GCP 上,我的服務器平臺詳細資訊如下:
admin@sharad-server$ uname -a
Linux sharad-server 3.10.0-1127.8.2.el7.x86_64 #1 SMP Tue May 12 16:57:42 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
以獨立方式執行所有這些命令的 shell 的詳細資訊如下:
admin@sharad-server$ ps -p $$
PID TTY TIME CMD
32296 pts/0 00:00:00 bash
為什么 locate 命令仍然反映已洗掉檔案的路徑?
更新:
根據建議之一,我也嘗試了 updatedb 命令,但它給了我一個錯誤。
admin@sharad-server$ updatedb
updatedb: can not open a temporary file for `/var/lib/mlocate/mlocate.db'
最終更新:
updatedb 命令與 root 用戶一起使用,并成功更新了 locate 命令的功能。
uj5u.com熱心網友回復:
出于性能原因,Locate 使用存盤所有檔案樹結構的索引來查找某些內容...需要使用命令更新此檔案updatedb #root permision needed。如果要查找執行“實時分析”的檔案或目錄,則需要使用 find。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/321751.html
上一篇:在其他輸入上顯示輸入值
下一篇:命令findunix,linux
