相关疑难解决方法(0)

了解 `find` 的 -exec 选项

我发现自己不断地查找语法

find . -name "FILENAME"  -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)

主要是因为我不明白这-exec部分是如何工作的。大括号、反斜杠和分号的含义是什么?该语法还有其他用例吗?

shell find

116
推荐指数
1
解决办法
8万
查看次数

Bash 复制所有与给定扩展名不匹配的文件

当我从 Shotwell 中的相机导入图片时,它也会导入视频剪辑。这有点烦人,因为我想将我的视频存储在另一个文件夹中。我尝试编写一个 bash 命令来执行此操作,但没有成功。

我需要一个满足以下要求的命令:

  • 找到目录结构中没有 .jpg、.png、.gif 或 .xcf(不区分大小写)扩展名的所有文件。
  • 将所有这些文件移动到目标目录中,无论文件名或目录路径是否包含空格或特殊字符。

任何帮助,将不胜感激!

编辑:我在 Ubuntu 中使用默认 shell,这意味着某些命令是别名等。

编辑 2:我自己尝试过(不是复制部分,只是文件列表部分)。我打开 extglob 并运行以下命令:

$ ls -R /path | awk '
  /:$/&&f{s=$0;f=0}
  /:$/&&!f{sub(/:$/,"");s=$0;f=1;next}
  NF&&f{ print s"/"$0 }'
Run Code Online (Sandbox Code Playgroud)

这列出了一切。我尝试在它的末尾使用 grep,但对于如何让它不匹配我给它的模式没有最模糊的想法。extglob 开关对 grep 没有太大帮助,即使它对其他命令有帮助。

bash file-copy wildcards

8
推荐指数
1
解决办法
7467
查看次数

标签 统计

bash ×1

file-copy ×1

find ×1

shell ×1

wildcards ×1