将文件复制到另一个目录,但“.txt”文件扩展名除外

时间:2017-08-01 19:29:06

标签: shell unix sh ls cp

我有很多文件扩展名不同,所以我想复制除

之外的所有文件
  

“TXT”

到另一个目录。

我尝试使用以下命令查找除“.txt”之外的所有可能的文件扩展名

ls -lrt /home/updatet/test/ -I "*.txt"

并复制

ls -1 /home/updatet/test/ | xargs cp {} demo/

2 个答案:

答案 0 :(得分:1)

使用bash extglobs:

请参阅http://wiki.bash-hackers.org/syntax/pattern#extended_pattern_language了解文档

shopt -s extglob
cp /home/updatet/test/!(*.txt) demo/

便携地:

for f in /home/updatet/test/*; do
  case $f in
    *.txt) :;;
    *)     cp "$f" demo/ ;;
  esac
done

答案 1 :(得分:1)

find /home/updatet/test ! -name \*.txt -exec cp {} demo/ \;