1行にファイルグループを移動する方法

1行にファイルグループを移動する方法

あるディレクトリから別のディレクトリに1000個のファイルを移動したいと思います。元のディレクトリにあればできますが、これを行うだけです。

mv $(ls /home/jeremy/source|tail -1000) /home/jeremy/dest

他の場所ではパスが削除されるため、何らかの方法でパスを追加する必要があります。私は$が便利だと思ってトリッキーに見えるので、xargsを避けたいです。

ベストアンサー1

コマンドラインが長すぎず、コマンドが機能している場合は、xargs次のように使用できます(トリッキーです)。

 ls /home/jeremy/source | tail -1000 | xargs mv -t /home/jeremy/dest

これは、ファイル名(またはパス)に改行やその他の特殊文字がないと仮定します。それ以外の場合は、tailが正しく機能せず、xargsがパーティションファイル名を取得します(指定しない限り、行で動作するためxargs -0)。

パラメータを使用すると、ターゲットにコピーする必要があるファイルパラメータの前にターゲットディレクトリを指定-tできます。mv

おすすめ記事