我想從當前目錄中遞歸刪除所有以.orig結尾的文件。unix中的管道 - 是作爲參數隱式提供的值?
這是否會取得成功?
ls -R | grep ".orig$" | rm
是grep的結果隱含作爲參數傳遞到這裏RM?
我想從當前目錄中遞歸刪除所有以.orig結尾的文件。unix中的管道 - 是作爲參數隱式提供的值?
這是否會取得成功?
ls -R | grep ".orig$" | rm
是grep的結果隱含作爲參數傳遞到這裏RM?
如何像:
find ./ -type f -name "*.orig" -exec rm "{}" \;
似乎爲我工作,但它可能是一個好主意,與第一的echo
代替rm
測試;)
ls -R
慣於5相當正確的格式輸出直接傳遞到RM(通過grep的),因爲它單獨列出文件每個目錄,如:
如果はnted做用grep類似的東西,你就需要使用xargs
這樣的:
grep ".orig$" | xargs rm
剛剛從'-iname'刪除'i',因爲這也符合「file.Orig」,「file.oRiG」等(我習慣了打字'-iname',因爲我通常要匹配在我搜索時沒有區分大小寫)。 –
可能值得把{}設置爲「{}」來處理帶空格的文件名? – Seb
Cheers @Seb。已經更新的答案:) –
不,他們不是。但這是xargs
的目的:
ls -R | grep ".orig$" | xargs rm -i
會做你想做的。 -i
不是必需的,但是在第一次運行時使用它是個好主意。 (它會提示你刪除一個文件,如果你有信心,答案是肯定的始終,中止並沒有-i
重新運行。)
我不認爲這會遞歸的工作,在我的答案中描述的原因-R' )。 –
解析'ls'輸出不是一件美妙的事情。 – devnull