名前に「t_1」を含むすべてのファイルを 1 つのコマンドで別のディレクトリにコピーするにはどうすればよいですか?

名前に「t_1」を含むすべてのファイルを 1 つのコマンドで別のディレクトリにコピーするにはどうすればよいですか?

1 つのコマンドを使用して、名前に「t_1」が含まれるすべてのファイルを別のディレクトリにコピーするにはどうすればよいですか?

答え1

使用

cp /path/to/files/*t_1* /path/to/destination

あるいは単に

cp ./*t_1* /path/to/destination

ファイルが現在のディレクトリにある場合。

または、

for f in ./*t_1*; do
    cp "$f" /path/to/destination
done

現在のディレクトリにパターンに一致するファイルが何千個もある場合でも、これは確実に機能するはずです。

答え2

簡単な修正方法は次のとおりです。

find ./ -name '*t_1*' -exec mv '{}' ./ \;

このコードは、すべてのファイル (ファイル名に検索パターンを含む) を階層の 1 レベル上に移動します。

たとえば、すべての「t_1」ファイルが/ホーム/デスクトップ/ディレクトリに移動します。/家/ターミナルからこのコマンドを実行します。すべての「t_1」ファイルは/ホーム/デスクトップ//家/ディレクトリ。

ファイル名内の t_1 の位置に関係なく、すべてのファイルがコピーされます。

関連情報