最近、コマンドラインを頻繁に使用しています。ダウンロードしたいライブラリのURLを含む.txtファイルを作成しました。xargs、eval、およびmvアンサンブルの使用
$ cat downloads.txt | xargs wget
wgetコマンドを使用しているとき、私は宛先ディレクトリを指定しませんでした。私は今ダウンロードした各ファイルを "ベンダー"というディレクトリに移動したいと思います。レコードの
、私が...
$ open .
を実行した場合...私はドラッグ・アンド・ドロップすることができ、目的のディレクトリにこれらのファイルをすることを私に発生しました。しかし、私の意見では、この練習の目的を破るだろう。
私のcwdにファイルがあるので、それらをターゲットにして、それらを "vendor"ディレクトリに移動したいと思っています。
最近の質問:STDOUTに最近作成されたファイルを印刷する便利な方法はありますか?現在、私はかなり単純にこれが生成されます
$ cat downloads.txt | perl -n -e 'if (/(?<=\/)([-.a-z]+)$/) { print $1 . "\n" }'
次のパイプラインやPerlスクリプト... ...
react.js
redux.js
react-dom.js
expect.js
を...使用してdownloads.txt内のURLからファイル名をつかむことができましたこれらは目標とするファイルなのですばらしいです私は
$ mv {./,./vendor/}<filename>
<filename>
は「react.js」そして「redux.jsを」である
...、など...これに似ているパイプライン内のコマンドにこれらの行のそれぞれを変換したいのですが。
私はxargs
、eval
、およびmv
のいくつかの組み合わせを使用してこれを実現することができることを理解。これは私のbashスキルが落ちるところです。
私はこの問題に近づいている方法は単純でも理想的でもないことを再認識しています。これは意図的に私のbashの知識を引き伸ばすことを意図した複雑な運動です。
xargs
、eval
、およびmv
をどのように使用してこの目標を達成できるのかを知っている人はいますか?
ありがとうございました!
また、私のPerlとRegexのパイプラインを次のように置き換えることができると思います: '$ cat downloads.txt | xargs basename' – wpcarro
正しいディレクトリにあるファイルをいつでも再ダウンロードし、間違ったディレクトリ(CWD)にあったファイルを削除することができます: 'cat downloads.txt | xargs wget -P/directory/'then' catダウンロード| xargs rm' –
あなたは文字通り「ベンダー」を意味しますか?私は正確に理解していない、 'mv *。*ベンダー 'が仕事をすることができるように見える? (ダウンロードされたすべてのファイルにドットが付いている場合) –