【问题标题】:Can't move with find and exec? [closed]无法使用 find 和 exec 移动? [关闭]
【发布时间】:2018-11-26 14:55:39
【问题描述】:

我有一个简单的问题,我无法解决。我有多个文件:/root/php,扩展名为*.php

如何使用 find 和 exec 将所有文件移动到目标文件夹:

find /root/php -name "*.php" -exec mv /root/php/{} /root/destination/ \;

错误:

mv: cannot stat '/root/php//root/php/asjdoiasdj.php': 没有这样的文件或目录

【问题讨论】:

  • 你有/root/php/asjdoiasdj.php吗?请与ls -l /root/php/asjdoiasdj.php联系。
  • 我投票结束这个问题,因为它不是一个编程问题,而纯粹是关于使用标准 Linux 命令;它属于unix.stackexchange.com/questions/tagged/linux(很可能会被标记为重复)...
  • Protip:计算机不会在错误消息中说错或拼错。如果mv 说它找不到/root/php//root/php/asjdoiasdj.php,那么这就是它尝试但未能找到的文件名。你不应该想“哦,这可能意味着它找不到/root/php/asjdoiasdj.php,所以我会寻找那个文件”

标签: php linux shell find exec


【解决方案1】:

试试这个:

find /root/php -name "*.php" -exec mv {} /root/destination/ \;

在这种情况下,您使用绝对路径

【讨论】:

  • 要批量移动,您可以使用-exec mv -t /root/destination {} +(需要GNU mv),它会尽可能少地调用mv,而不是每个文件移动一次。
猜你喜欢
  • 2017-11-11
  • 2012-08-17
  • 2014-07-27
  • 2016-11-09
  • 1970-01-01
  • 1970-01-01
  • 2021-12-13
  • 1970-01-01
  • 2019-02-19
相关资源
最近更新 更多