如何在有条件的情况下执行“ mv”命令-将具有某些结尾的文件移动到其他文件夹

哈汉姆

我是计算机科学专业的学生。学校的第二年-我正在学习Linux。由于存在Corona病毒,我以独立的方式进行研究。在学习期间,我遇到了一个包含多个部分的问题-我无法解决。

这个问题要我执行mv命令-我将一些文件传输到该文件夹​​。我尝试执行mv命令-并尝试集成“管道”或其他类似的命令find

mv我认为这不是正常的命令,需要整合更多的内容,而我又无法理解。我尝试解决了几天的问题。我也尝试在论坛中找到相同的问题-但找不到。

问题:

  1. 写一个命令,将复制所有文件结束.c.h进入Programs文件夹。

我的尝试可能是这样做的:

find "*.c" -o "*.h" | mv Programs
库萨兰达

可以用三种方式解释该分配:

  1. 将所有文件.c.h文件从当前目录复制到目录Programs,或者
  2. 将所有文件.c.h文件从当前目录或其下面的任何位置复制到该目录Programs
  3. 将所有可访问的文件.c以及.h 从系统任何位置的文件复制到目录Programs

请注意,分配中显示的是“复制”,而不是“移动”。这意味着您应该使用cp命令,而不是mv

分配的第一种解释是通过以下方式解决的

cp *.[ch] Programs

(假设该*.[ch]文件与我们感兴趣的所有文件匹配,并且在当前目录中没有成千上万个文件)。

作业的第二种解释是通过

find . -path ./Programs -prune -o -type f -name '*.[ch]' -exec cp {} Programs \;

将在当前目录中或以下搜索所有后缀.c.hfilename的常规文件,并对cp每个此类文件执行cp由于该实用程序无法读取其标准输入流,因此我们无法通过它进行传输。

我们还确保避免查看Programs目录(假定是当前目录中的子目录)的内部。不这样做将最终导致将文件从复制ProgramsPrograms请参阅“解释发现的-path和-prune选项”了解有关更多信息-path-prune

第三种解释很容易从第二种实现:

find / -path "$PWD/Programs" -prune -o -type f -name '*.[ch]' -exec cp {} Programs \;

...我们只需要从find目录树的顶部开始,并指定Programs要避免目录是路径中的目录即可$PWD/Programs

由于您无处访问,这可能会给您带来许多错误。为了避免这种情况,还请修剪您无法访问的目录,并仅复制您可以读取的文件:

find / \( -type d ! -executable -o -path "$PWD/Programs" \) -prune -o \
    -type f -name '*.[ch]' -readable -exec cp {} Programs \;

这需要GNUfind进行-executable测试(如果目录是可执行文件,则可以搜索该目录)和-readable测试。

请注意,find此处变体会将文件限制为仅常规文件(通过-type f测试),而该cp *.[ch]方法将复制以这两个字符结尾的任何类型的事物。同样,该find解决方案将复制隐藏文件(名称以点开头的文件),而第一个解决方案默认情况下将不匹配这些类型的名称。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在有条件的情况下将变量传递给awk命令?

如何在有条件的情况下让表格单元执行两种不同的筛选?

如何在有条件的情况下替换冲突(对于SQLite)?

如何在有条件的情况下导出到CSV?

如何在有条件的情况下减去熊猫中的两列

Laravel如何在有条件的情况下进行雄辩的雄辩多次联接?

如何在有条件的情况下删除SQL Server中的重复行?

如何在有条件的情况下使用ConcatMap进行多个API调用

如何在有条件的情况下获得当月的平均数据?

如何在有条件的情况下控制 YAML 中的作业流?

在有条件的情况下使用“输入”

在有条件的情况下退出 Jess 中的规则执行

如何在有条件的情况下将一个spark dataframe列分为两列

如何在有条件的情况下使用RemoveAll删除列表中的多个项目?

如何在有条件的情况下遍历 Pandas 数据框?(对 iterrows/for 循环/矢量化的困惑)

如何在有条件的情况下删除y_train数组中值的百分比

如何在Java中执行Putty命令在文件夹之间移动文件(MV命令)

仅在有条件的情况下如何设置状态?

批处理命令将png文件移动到文件夹中具有相同名称的文件和文件夹

将嵌套文件夹的所有文件移动到其他文件夹

用mv命令替换现有文件夹

如何在有条件的情况下在 mongoDB 上插入数据

如何将rails slug url映射到id以在有条件的情况下使用

使用mv命令时如何排除文件夹

如何在有条件的情况下应用公式以生成新列并应用两种类型的排名?

熊猫在有条件的情况下将数组列转换为多列

R:在有条件的情况下将数据从行添加到列

有条件的情况下如何避免重复?

确保代码在有条件的情况下运行两次