我想提取目錄中的所有tar.gz文件。for循環返回一個「>」
我已經搜索在互聯網和所使用的命令:
for i in *.tar.gz; do tar -xzvf $i; done
然而,終端具有>在下面的行返回。
有人能告訴我這裏有什麼情況嗎?我將衷心感謝您的幫助。
我想提取目錄中的所有tar.gz文件。for循環返回一個「>」
我已經搜索在互聯網和所使用的命令:
for i in *.tar.gz; do tar -xzvf $i; done
然而,終端具有>在下面的行返回。
有人能告訴我這裏有什麼情況嗎?我將衷心感謝您的幫助。
嗯你的解決方案應該工作在我看來。你可以嘗試一些簡單的
ls *.tar.gz | xargs -L 1 tar -xzvf
試試這個
find -name '*.tar.*' | xargs -I% tar -xvf %
謝謝你生病檢查它 – 2014-11-06 09:55:42
'-'格式已改變 – 2014-11-06 09:57:01
@JasonC現在一切都是f9 – 2014-11-06 10:00:48
我想你可能需要指定你的zip文件的輸出文件夾。 這是>代表正常情況。
for i in *.tar.gz; do tar xvzf $i -C path/to/output/directory; done
這幾個星期前我用過它的時候,
這隻在當前目錄不可寫入時纔有必要。 – 2014-11-06 09:46:23
您的tar.gz文件的名稱中是否有空格或特殊字符?只是一個猜測,試試這個:
for i in *.tar.gz; do tar -xzvf "$i"; done
沒有人建議找到-print0 | xargs的1-0有空格的文件名,這裏是:
/tmp/foo$ ls -1
a.tar.gz
b.tar.gz
c and d.tar.gz
/tmp/foo$ find . -name "*.tar.gz" -print0 | xargs -0 -I{} tar -xzvf {}
a
c
d
b
/tmp/foo$ ls -1
a
a.tar.gz
b
b.tar.gz
c
c and d.tar.gz
d
您的解決方案將在因爲其中包含了空間,但也許這不是錯誤的文件「c和d.tar.gz」我的輸入數據失敗你經歷過。 A.M.D的一個會起作用。
此處不可重現。 – 2014-11-06 09:32:16
你好,能否再解釋一下? – 2014-11-06 09:33:31
在我的機器上,這行不會做你聲稱它做的事。 (這就是「不可重現」的意思。)它不顯示任何'>'。事實上,它只是按照預期工作,我不明白爲什麼它不會。 – 2014-11-06 09:38:11