我必須撰寫一個 shell 腳本,以便它應該洗掉除 test.txt 之外的所有檔案當我運行腳本時,它說洗掉源檔案失敗,因為 dev_data 是一個目錄。
ls | grep -v 'test.txt' | xargs rm
我想撰寫一個 shell 腳本,這樣如果下面的路徑中有目錄,它應該跳過該目錄。該腳本應僅洗掉目錄中的檔案 - dev_data
錯誤日志如下:
ig_dir.sh process starts at:
Wed Nov 2 08:08:09 IST 2022
tar: Removing leading `/' from member names
/alb/albt_shard/alb1/path1/path2/alb1/sub/alby/
/alb/albt_shard/alb1/path1/path2/alb1/sub/alby/dev_data/
/alb/albt_shard/alb1/path1/path2/alb1/sub/alby/dev_data/list_file.place.txt
rm: cannot remove a€?dev_dataa€?: Is a directory
ig_dir.sh: Removal of Source file failed
這就是我傳遞引數的方式 - sh -x ig_dir.sh.sh /alb/albt_shard/alb1/path1/path2/alb1/sub/alby.. 所以當我將它作為引數傳遞給腳本時,它會檢查alby下的目錄并給出 --- rm: cannot remove ‘dev_data’: Is a directory
uj5u.com熱心網友回復:
“腳本應該只洗掉目錄中的檔案 - dev_data”
find dev_data -maxdepth 1 -type f ! -name test.txt -delete
- 將起點指定為 dev_data
-maxdepth 1確保它不會下降到 dev_data 子目錄中! -name test.txt忽略名為 test.txt 的檔案(!即“不是”)- 您可以添加
-print以獲取已洗掉檔案的串列
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/525658.html
標籤:linux壳Unix
上一篇:使用權重創建堆疊密度圖
下一篇:.NETMAUI的登錄頁面
