拡張子なしですべてのファイルをコピーする

拡張子なしですべてのファイルをコピーする

以下のように、一部のファイルを拡張子にコピーできます。

cp *.txt ../new/

しかし、拡張子なしですべてのファイルをコピーする方法は?

答え1

@ubaid-ashrafの答えはほとんどそうです。拡張子なしでファイルを指定する方法は次のとおりkshです。

cp -- !(*.*) /new/path/

ファイル名にドットがあるファイルをスキップします。

で動作させるには、()と()のオプションをbash有効にする必要があります。extglobshopt -s extglobkshglobzshset -o kshglob

答え2

次のことができます。

cp -- !(*.txt) /path/to/directory

上記のコードは、.txt拡張子を持たないすべてのファイルをコピーします。パイプ文字を使用して複数の拡張子を提供することもできます。

たとえば、

cp -- !(*.txt|*.c|*.py) /path/to/directory

答え3

find + grepを使用すると、拡張子のないファイルのみをインポートできます。

   find . -maxdepth 1 -type f | sed 's/^\.\///' | grep -v "\."

したがって、コピーコマンドは次のようになります。

   cp ` find . -maxdepth 1 -type f | sed 's/^\.\///' | grep -v "\." ` destination_folder

関連情報