我需要創建一個shell腳本,它將簡單地找到特定源文件(例如/ var/www/html/folder1/source /)下的文件(例如* .jpg),並且必須執行一些操作Find命令返回的輸出。下面是命令我已經寫在我的劇本linux查找命令輸出遍歷
outputvar = find /var/www/html/folder1/source/ -name \*.jpg
我如何能夠讓存儲find命令的輸出變量的遍歷操作?
我需要創建一個shell腳本,它將簡單地找到特定源文件(例如/ var/www/html/folder1/source /)下的文件(例如* .jpg),並且必須執行一些操作Find命令返回的輸出。下面是命令我已經寫在我的劇本linux查找命令輸出遍歷
outputvar = find /var/www/html/folder1/source/ -name \*.jpg
我如何能夠讓存儲find命令的輸出變量的遍歷操作?
您可能希望將find
命令的輸出置於文件中,例如,
find /var/www/html/folder1/source/ -name \*.jpg > /tmp/find.out
您還可以將該輸出放入shell變量中,例如,
outfindvar=$(find /var/www/html/folder1/source/ -name \*.jpg)
,然後你可以遍歷他們
for jpgfile in $outfindvar; do
## do something with $jpgfile
done
如果你可以在自己的名稱空間中的文件,要小心。在這種情況下,請考慮使用動作find
;或者可以使用-exec
操作的輔助腳本。
你真的應該閱讀Advanced Bash Scripting Guide
您可能希望與
#!/bin/bash -vx
啓動腳本同時調試它,並刪除-vx
一旦你的腳本運作良好。
你想對每個這樣的文件做什麼操作? –
我需要壓縮每個文件夾的所有文件,之後將不得不刪除這些文件 – neeraj
你可以有文件名包含像字符的空間嗎?或者你確定沒有'* .jpg'文件名有空格,例如沒有'photo \ of \ flower.jpg'? –