复制所有没有扩展名的文件

复制所有没有扩展名的文件

我们可以通过扩展名复制一些文件,如下所示:

cp *.txt ../new/

但如何复制所有没有扩展名的文件呢?

答案1

@ubaid-ashraf 的答案已经差不多了。指定不带扩展名的文件的方法ksh是:

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

以便跳过文件名中带有点的任何文件。

要使其在 中工作bash,您需要启用extglob选项 ( shopt -s extglob) 和( )kshglob中的选项。zshset -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

相关内容