Linux FAQ : ls , cp , rm Argument list too long

2022/05/24閱讀時間約 2 分鐘
Linux FAQ : ls , cp , rm Argument list too long
在使用 Linux
如大量檔案
ls 查看
cp 複製
rm 清理
可能會遇到了 Argument list too long
大約 10 萬筆以上檔案 就可能會看到此訊息
主要可能是 指令搭配特殊字元 *
* 在 Linux 可說是全部都找
不過此符號有其存取上限 , 超過了就會讓 指令 出現 error
1. ls 可以嘗試看不帶入 *
2. cp 可參考
指令 :
for i in `ls` ; do cp $i $i.01 ; done
介紹 : 透過 for 迴圈 來一筆一筆檢查
3. rm 可參考
指令 :
du -a --time --time-style='+%s' `find ./* 2>/dev/null | xargs -i ls {} ` | 
awk -v MAX=$date_time '{sec=(MAX-$2); print $3 " " sec}' |awk -v MAX=$lim '{if(MAX<$2) {print $1}}' | xargs rm -rf
介紹 : 用 du 和 xargs 來拆分 , du 傳給 find 輔助找出檔案 ( 隱藏檔 ... 等 )
awk 是檢查看時間超過設定值就顯示 ( 要設定變數 $lim )
範例 : 找出時間大於 10 sec 檔案與目錄
#!/bin/ksh
lim=10
du -a --time --time-style='+%s' `find ./* 2>/dev/null | xargs -i ls {} ` | 
awk -v MAX=$date_time '{sec=(MAX-$2); print $3 " " sec}' | awk -v MAX=$lim '{if(MAX<$2) {print $1}}' | xargs rm -rf
備註 : 也可以 find -d 功能來清理檔案
find . -mtime +0 -delete
    work b
    work b
    留言0
    查看全部
    發表第一個留言支持創作者!
    從 Google News 追蹤更多 vocus 的最新精選內容