Linux在運行ls時忽略某些文件或目錄
概述
在Linux下列出某個目錄下的文件的時候,可以通過-I
(大寫的i)選項來忽略特定的文件,再配合別的命令來完成進一步的操作。
基本用法
# -I + 模式
ls /path/to/dir -I "*.jpg" # 列出/path/to/dir下的文件和目錄,去除後綴是jpg的文件或目錄
# 多個-I一起用
ls /path/to/dir -I "*.jpg" -I "*.avi"
# 列出所有文件和目錄,除了開頭是0的
ls /path/to/dir -I "0*"
# 列出所有文件和目錄,除了結尾是4的
ls /path/to/dir -I "*4"
實例
去除當前目錄下出了編號是5的倍數的文件:
$ touch {001..100} # 創建100個示例文件
$ ls
001 004 007 010 013 016 019 022 025 028 031 034 037 040 043 046 049 052 055 058 061 064 067 070 073 076 079 082 085 088 091 094 097 100
002 005 008 011 014 017 020 023 026 029 032 035 038 041 044 047 050 053 056 059 062 065 068 071 074 077 080 083 086 089 092 095 098
003 006 009 012 015 018 021 024 027 030 033 036 039 042 045 048 051 054 057 060 063 066 069 072 075 078 081 084 087 090 093 096 099
$ ls -I "*5" -I "*0" # 列出除了編號是5的倍數的文件
001 004 008 012 016 019 023 027 031 034 038 042 046 049 053 057 061 064 068 072 076 079 083 087 091 094 098
002 006 009 013 017 021 024 028 032 036 039 043 047 051 054 058 062 066 069 073 077 081 084 088 092 096 099
003 007 011 014 018 022 026 029 033 037 041 044 048 052 056 059 063 067 071 074 078 082 086 089 093 097
$ ls -I "*5" -I "*0" |xargs rm # 將要刪除的文件作為參數通過xargs傳給rm命令
$ ls
005 010 015 020 025 030 035 040 045 050 055 060 065 070 075 080 085 090 095 100
通過最後的ls
結果可以看到,留下的都是編號是5的倍數的文件。
推薦閱讀: