Shell-Script
如何通過 mv 管道輸出 tar 的輸出?
我之前的一個問題是如何通過 tar 管道下載的文件,現在我想知道如何通過 mv 管道 tar 的輸出。看到我現在有這個命令:
wget -c https://github.com/JeffHoogland/moksha/archive/0.1.0.tar.gz | tar -xz
這將創建一個名為 的目錄
moksha-0.1.0
,但我想知道如何將這個輸出目錄重命名為,可能通過此命令末尾的moksha
管道 ( )。|
儘管如果您知道如何在沒有管道的情況下執行此操作,但仍與 wget 和 tar 使用同一行程式碼,我也很樂意接受。需要明確的是,我知道:
wget -c https://github.com/JeffHoogland/moksha/archive/0.1.0.tar.gz | tar -xz -C moksha
將創建一個輸出目錄
moksha
,但在此輸出目錄中會有該moksha-0.1.0
目錄,我想將此moksha-0.1.0
目錄重命名為moksha
,而不是放在moksha-0.1.0
一個名為moksha
.
像這樣?
[root@b se]# wget -cqO - https://github.com/JeffHoogland/moksha/archive/0.1.0.tar.gz | tar -xz --transform=s/moksha-0.1.0/moksha/ [root@b se]# ls moksha [root@b se]# ls moksha ABOUT-NLS config.guess debian Makefile.am aclocal.m4 config.guess.dh-orig depcomp Makefile.in AUTHORS config.h.in doc missing autogen.sh config.rpath enlightenment.pc.in netwm.txt autom4te.cache config.sub enlightenment.spec.in NEWS BACKPORTS config.sub.dh-orig INSTALL po BUGS configure install-sh README ChangeLog configure.ac intl src compile COPYING ltmain.sh xdebug.sh config data m4 x-ui.sh
從
tar
手冊頁:--transform= *EXPRESSION* , --xform= *EXPRESSION* 使用 sed replace *EXPRESSION*轉換文件名。
因此
sed
,這可能需要它才能工作。雖然如果你有wget
,你可能也有sed
。