[20180302]使用find命令小錯誤.txt

lfree發表於2018-03-02

[20180302]使用find命令小錯誤.txt

--//上午一臺機器磁碟空間爆滿,騰出磁碟空間順便清理adump目錄檔案,再次遇到小問題.做一個記錄.
--//我使用find遇到的問題還不少,連結:http://blog.itpub.net/267265/viewspace-2147455/

1.刪除aud檔案:

$ cd /u01/app/oracle/admin/xxxx/adump

$ find . -name *.aud
-bash: /usr/bin/find: Argument list too long

$ ls -l *.aud
-bash: /bin/ls: Argument list too long

--//開始很疑惑,馬上明白*.aud在bash shell上展開.

$ ls -l "*.aud"
ls: *.aud: No such file or directory

--//報錯.

$ find . -name "*.aud" -exec file {} \+
find: file: Argument list too long
find: file: Argument list too long
find: file: Argument list too long
./ora_19536.aud:  ASCII English text
./ora_1918.aud:   ASCII English text
./ora_14603.aud:  ASCII English text

--//檔案太多,使用+號也不行.必須使用find+xargs命令.

2.繼續:
--//順便測試如何更快刪除.

$ time find . -name "*.aud" | xargs file |wc
  20507   82028  758759

real    0m5.494s
user    0m5.005s
sys     0m0.275s

$ time find . -name "*.aud" | xargs -P 5 file |wc
  20507   82032  758759

real    0m2.278s
user    0m5.032s
sys     0m0.317s

$ time find . -name "*.aud" | xargs -P 5 rm -f

real    0m0.724s
user    0m0.030s
sys     0m0.575s

--//205xx檔案,1秒刪除.

3.看看引數最大多少:
$ getconf ARG_MAX
131072

--//我僅僅看到一臺centos  6.5
#  getconf ARG_MAX
2621440

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2151445/,如需轉載,請註明出處,否則將追究法律責任。

相關文章