1
我有一個腳本,獲取來自用戶的輸入作爲絕對路徑(使用fselect對話框)。如何使用從用戶輸入到備份目錄的絕對路徑使用tar?
backupdir=$(user_select "choose a directory backup destination");
我用
tar cvzf backup.tar.gz $backupdir
然而,這包括絕對目錄路徑(* 1),所以不是我嘗試(出與腳本):
tar czvf backup.tar.gz -C $PATH directory-to-backup
因此,在我我可以使用的腳本:
pathtodir = dirname $backupdir
獲得備份目錄的$ PATH,但我需要的目錄的名稱,我想備份即:
dirname = ..
tar czvf backup.tar.gz -C $PATH $dirname
我如何獲得的$名稱目錄名稱?
1 - 「卸下領先'/」會員名」
GNU tar?如果是這樣,請查看'--strip-components = NUMBER' ... – 0xC0000022L 2012-04-09 11:51:22
這樣就可以提取? – Sheldon 2012-04-09 11:53:32
這是在包裝。在這兩種情況下都可以使用「-C」,AFAIK。即使沒有,你也可以在子shell中執行'(cd $ dirname && tar ...)'(在子shell退出後恢復舊的cwd)。哦,我認爲爭論的順序可能會起作用。嘗試將'-C'作爲第一個參數,或者肯定在'f'和它的參數之前。 – 0xC0000022L 2012-04-09 11:56:42