カレントのディレクトリだけを手軽にアーカイブ(tar)したい
Linuxにターミナルでログインしていると、
カレントにあるファイルを全部アーカイブしたいことがよくあります。
これは私の操作の癖もあるかもしれませんが、
アーカイブを幾つか解凍してあって、その中身だけを別の環境に持っていきたい事があります。
tar -zcvf archive.tar.gz *
これでも意外と強引に行けちゃったりします。
archive.tar.gzが存在するとエラーが出てしまいます。圧縮はできるけど。
それに例えば、
archiveA.tar.gz archiveB.tar.gz archiveC.tar.gz ・・・
なんてのがあった場合、それらもアーカイブされてしまって無駄です。
そこで、”ディレクトリだけ”って言うオプションがあるのかと思ったら無いようで・・・
ダッシュ(`)でディレクトリリストを渡せばいいだけですのでこんな感じで・・・
tar -zcvf archive.tar.gz `ls -F|grep /`
単にlsだとディレクトリかファイルかわからないので -F をつけます。
こうするとディレクトリに/が付くようになるので、grepで選別しています。
でも、ちょっとこれを毎回入力するのは面倒です。
というわけで、dtarというコマンドを定義してみました。
dtar(){ if [ "$1" = "" ] ; then echo usage : dtar archivename else tar -zcvf $1.tar.gz `ls -F|grep /` fi }
これをカレントの.bashrcとかに書いておけば、ログインしたら使えるようになっているはずです。
ディスカッション
コメント一覧
まだ、コメントがありません