ユーザーからの入力を絶対パスとして取得するスクリプトがあります(fselectダイアログボックスを使用)。したがってユーザ入力からディレクトリをバックアップする絶対パスを使用してtarを使用するにはどうすればよいですか?
tar czvf backup.tar.gz -C $PATH directory-to-backup
、私の中で:
backupdir=$(user_select "choose a directory backup destination");
しかし私は、これは絶対ディレクトリ・パス(* 1)を備えので、代わりに私は(外でのスクリプト)未遂
tar cvzf backup.tar.gz $backupdir
を使用しました私が使用できるスクリプト:
pathtodir = dirname $backupdir
は、バックアップディレクトリの$のPATHを取得するが、私は、バックアップすなわちしたいディレクトリの名前を必要とする:
dirname = ..
tar czvf backup.tar.gz -C $PATH $dirname
がどのように私は$の名前はdirnameはできますか?
1 - 私が最初に質問を把握するためにいくつかの困難があった正直に言うと、
GNU tar?もしそうなら、 '--strip-components = NUMBER' ... – 0xC0000022L
を調べて、それが抽出されるようにしますか? – Sheldon
それは梱包中です。 AFAIKの両方の場合に '-C'を使うことができます。そうでない場合でも、サブシェルの中で '(cd $ dirname && tar ...)'を実行することができます(サブシェルが終了した後に古いcwdを復元する)。ああ、私は議論の順序が役割を果たすかもしれないと思う。 '-C'を最初のパラメータとして、あるいは' f'とその引数の前に置いてください。 – 0xC0000022L