Ls
避免列出以 ~ 結尾的文件(備份文件)
我的要求是列出目錄中的所有文件,除了以 a 結尾的
~
文件(備份文件)。我嘗試使用命令:
ls -l | grep -v ~
我得到這個輸出:
asdasad asdasad~ file_names.txt normaltest.txt target_filename testshell1.sh testshell1.sh~ testshell2.sh testshell2.sh~ testtwo.txt testtwo.txt~ test.txt test.txt~
我只想獲取這些文件:
asdasad file_names.txt normaltest.txt target_filename testshell1.sh testshell2.sh testtwo.txt test.txt
ls -l | grep -v ~
這不起作用的原因是波浪號被擴展到您的主目錄,因此
grep
永遠不會看到文字波浪號。(參見例如Bash 的關於波浪號擴展的手冊。)您需要引用它以防止擴展,即ls -l | grep -v "~"
當然,這仍然會刪除任何帶有波浪號的任何輸出行,即使在文件名中間或
ls
輸出中的其他地方(儘管它可能不太可能出現在使用者名、日期等中)。如果您真的只想忽略以波浪號結尾的文件,您可以使用ls -l | grep -v "~$"
ls
(在大多數 Linux 系統上找到)的 GNU 實現有一個選項:-B
忽略備份:ls --ignore-backups