絶対パスでアーカイブすると、展開した時に絶対パスで展開される。
ダメ絶対。
と言われて育ってきました。
しかし最近だと第2引数に絶対パスを指定すると警告してくれるので、
世の中に産み出される悲劇の3%くらいは減っています。
ただ、ふっかいふっかいディレクトリが産み出される悲劇は避けられません。
なのでディレクトリ移動して、相対パスでアーカイブするか、-C
オプションを使いましょう。
- 移動案
いわずもがな。
- -C 案
パスの先の nyamu をアーカイブしてくれます。
哀戦士のオンラインメモ帳。 忍者ツールズって15年前にお世話になってたけど今も 残っててびっくりした。
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
最初慣れていないときに、気持ち悪いのが以下の部分ですよね。
{}
って何!?ってなりますw
これ、xargs の -I
オプションの後に指定するものなのですが、パイプで渡ってきた元ファイルの場所を置換するためのプレースホルダです。
デフォルトが {}
なので、大抵みんな {}
ってつけますが、これ何でもいいです。なので、例えば以下のようにしてもオッケイです。
ちょっと分かりやすくなるんじゃないでしょうか。私は個人的によく {original} とかにしたりします。
find と xargs を組み合わせてコマンド実行 - いろいろ備忘録日記 (hatenablog.com)
どこに実行ファイルがあるか?
$
which
chromedriver
/usr/bin/chromedriver
find でも ls -l と同じように詳細な情報を出力するには、-ls
オプションをつける。-ls
オプションは ls -dils
と同じ効果を find の出力結果に適用してくれる。
$ find ./* -ls
271076 0 -rw-r--r-- 1 root root 0 8月 6 10:00 ./a
273136 0 -rw-r--r-- 1 root root 0 8月 6 12:00 ./b
273137 0 -rw-r--r-- 1 root root 0 8月 5 22:00 ./c
絶対パスでアーカイブすると、展開した時に絶対パスで展開される。
ダメ絶対。
と言われて育ってきました。
しかし最近だと第2引数に絶対パスを指定すると警告してくれるので、
世の中に産み出される悲劇の3%くらいは減っています。
ただ、ふっかいふっかいディレクトリが産み出される悲劇は避けられません。
なのでディレクトリ移動して、相対パスでアーカイブするか、-C
オプションを使いましょう。
いわずもがな。
パスの先の nyamu をアーカイブしてくれます。
結果的にはpruneオプションを利用することで要求を解決出来るのだが、この時に「pruneオプションは、除外するためのオプション」という理解をするのは混乱を招く。
findコマンドで一部のディレクトリを除外した際に得た理解 - Qiita
このような場合にトップディレクトリを消すためには、-mindepth 1
とするといい。
$ man find
...
-mindepth levels
Do not apply any tests or actions at levels less than levels (a non-negative integer).
-mindepth 1 means process all files except the command line arguments.
...
-mindepth 1 means process all files except the command line arguments.
とは、findの引数に渡すパス以外のファイルに対して処理する、という意味なので、find . -mindepth 1
だと.
(つまりカレントディレクトリであり、検索のトップディレクトリ)以外に対して処理される。
$ find -mindepth 1 -type d
./dir1
./dir2