無視されたディレクトリのリストを「tree」コマンドに渡す

無視されたディレクトリのリストを「tree」コマンドに渡す

ディレクトリツリーを作成するために必要なスクリプトを作成しています。

tree無視するディレクトリのリストと一緒に変数を渡すには?これらのディレクトリには名前にスペースがあります。

私は次のことを試しました:

tree -o /volume1/web/eb.html -T "List" --charset UTF-8 -C -I "$to_ignore" -P '*pdf' --prune --noreport /volume1/docs

to_ignoreスクリプトによって他の場所で作成されたディレクトリのリストがあります。

'dir1|dir2|dir with space|dir4'

しかし、それはうまくいきませんでした。スペースがあるディレクトリでは競合が発生します。

さて、変数の周りに引用符を使用すると、競合が発生するのに役立ちますが、treepdfファイルが必要なディレクトリも印刷され、リストから無視されます。コマンドから直接無視するディレクトリを作成すると、奇妙にもうまくtree ...機能します。

答え1

変数を引用:

$ tree foo                
foo
├── bar foo
│   └── blah
├── baz
│   └── blah
├── foo
├── foo bar
│   └── blah
└── yada

8 directories, 0 files
$ to_ignore='yada|bar foo|baz'
$ tree foo -I "$to_ignore"    
foo
├── foo
└── foo bar
    └── blah

3 directories, 0 files

関連情報