02
単一のシンボリック リンクを作成します。
10
複数のシンボリックリンクを作成します (最後の引数がディレクトリで、複数のソースがある場合)。同等の Python は次のようなものです:
dst = args[-1]
for src in args[:-1]:
os.symlink(src, os.path.join(dst, os.path.dirname(src)))
では、28
を実行するとどのように機能しますか? ?あなたのシェル ワイルドカードを複数の引数に変えることで、それが機能します。 31
だけだったら 43
コマンドにワイルドカードを使用すると、文字通り 50
という名前の単一のソースが検索されます 60
で 、そのディレクトリ内のすべてのファイルではありません。
Python の同等物は次のようなものです (シェルで可能なチルダ、env 変数、コマンド置換など、2 つのレベルを一緒に混ぜて他の多くのケースを無視してもかまわない場合):
dst = args[-1]
for srcglob in args[:-1]:
for src in glob.glob(srcglob):
os.symlink(src, os.path.join(dst, os.path.dirname(src)))
77
ではそれはできません それはそれをしないので、単独で—その一部です—。 「85
に相当することをしたい」と言っているようなものです 90
を使用 名前でフィルタリングせずに。 シェルがグロビングすることはありません。"
正解は 116
を使用することです 、または 129
、または 136
プラス正規表現、または好きなもの。
しない 149
を使用 、それは再帰を行うため ファイルシステム ウォークなので、シェル 156
にも近くありません
167
あなたの場合、「172
で始まるすべてのファイル」を指定するシェル拡張パターンです "。
しかし、このパターンを拡張するのはシェルの役割です 一致するファイルに。 180
ではありません コマンドの.
しかし 199
はシェルではなく、OS 呼び出しです。したがって、シェル拡張パターンをサポートしていません。スクリプトでその作業を行う必要があります。
これを行うには、208
を使用できます。 、または 212
.他の回答に示されているように、適切な呼び出しは、何をしたいかによって異なります。 (221
235
と同等ではありません )
自分自身を納得させるために:Unix マシンの端末で次のコマンドを実行します:240
.マッチングを行っているのはシェルであることがわかります。