亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

編寫個shell腳本將/usr/local/test目錄下大于100K的文件轉移到/tmp目錄下

http://img1.sycdn.imooc.com//57f7a81100012ee306850252.jpg

感覺這個腳本不對,然后能說出每一行的意思嗎?麻煩給出正確的答案,感謝!

正在回答

4 回答

使用一條find命令就可以了

find /usr/local/test/ -size +100k -exec mv {} /tmp \;

如果只需要移動文件不移動目錄,find /usr/local/test/ -size +100k -type f -exec mv {} /tmp \;

1 回復 有任何疑惑可以回復我~
#1

Motoc16 提問者

只不過要求到shell編寫的,所以想知道
2016-10-08 回復 有任何疑惑可以回復我~
#2

掌上觀石 回復 Motoc16 提問者

直接把上條命令寫入腳本接可以了,o(╯□╰)o
2016-10-08 回復 有任何疑惑可以回復我~

你用的手機吧,用大點的例如平板,或者電腦顯示器,分辨率高的顯示的清。??

0 回復 有任何疑惑可以回復我~
如果不允許使用find,必須用腳本實現:
#!/bin/bash
ls?-al?/usr/local/test?>?./temp.txt??#將目錄中的ls信息輸出到temp.txt
touch?1.txt?move2tmp.txt???#創建兩個文件備用
sed?'s/[[:space:]]\+/\*/g'?./temp.txt?>?1.txt??#將文件文本中的單個或連續空格替換為*,備用
for?i?in?`cat?1.txt`;do
????????declare?-i?size=`echo?$i?|?awk?-F'*'?'{print?$5}'`???#通過*分割每一行中的內容?取出第五個字段(文件大小),也可以用cut?-d
????????if?[?$size?-gt?100000?];then
????????????????filename=`echo?$i?|?awk?-F'*'?'{print?$NF}'`??#如果大小大于100k,取得其文件名
????????????????mv?$filename?/tmp???#將該文件移到tmp目錄下
????????????????echo?$filename>>move2tmp.txt???#記錄移動的文件
????????else
????????????????continue
????????fi
done
rm?-f?1.txt?biglog.txt?temp.txt??#刪除用過的臨時文件,保留文件移動移動記錄move2tmp.txt


0 回復 有任何疑惑可以回復我~

用find命令是個好方法,這里學習了,

不過如果是僅僅查找/usr/local/test目錄而不查找其內的字目錄的話,則不建議用find命令,因為find命令是在目錄結構中搜索文件和目錄,并執行指定的操作,也就是說find會對目錄內的所有文件和目錄及其字目錄進行全部搜索,則如樓上所說的用find則會對/usr/local/test目錄及其字目錄字字目錄都進行查找出大于100k的文件然后都進行移動到/tmp。

舉例如下,

[root@rhel7 test]# ll -h

total 1.5M

drwxr-xr-x. 3 root root ? 61 Feb 13 20:56 abrt

-rw-r--r--. 1 root root ?32K Feb 13 20:43 meta.db-shm

-rw-r--r--. 1 root root 1.4M Feb 13 20:43 meta.db-wal

drwxr-xr-x. 2 root root 4.0K Feb 13 20:43 tracker

[root@rhel7 test]# find ./ -size 100k

[root@rhel7 test]# find ./ -size 100k -type f

[root@rhel7 test]# find ./ -size 100k -type f -pint

find: unknown predicate `-pint'

[root@rhel7 test]# find ./ -size 100k -type f -print

[root@rhel7 test]# find ./ -size +100k -type f

./meta.db-wal

./tracker/meta.db

./tracker/meta.db-wal

./tracker/ontologies.gvdb

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

編寫個shell腳本將/usr/local/test目錄下大于100K的文件轉移到/tmp目錄下

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號