根据名称查找目录并将其移动到新目录

根据名称查找目录并将其移动到新目录

我想将名为“*_jony”的文件夹“/example”中包含的所有文件夹移动到名为“/jony”的新目录。我尝试了好几种方法都没有成功!如果能得到一些帮助那就太好了。谢谢!

答案1

mv path_to_example_dir/*_jony /jony

答案2

如果这是您需要经常执行的操作,您可能会发现使用脚本来执行此操作很有用。以下是一个快速组装的 Bash 脚本,可以完成这项工作:

#!/bin/sh
dir_str=$1
src_dir=$2
dest_dir=$3
ret_code=0
if [ ! -e $src_dir ] ; then
    echo "Could not find source directory $src_dir."
    let "ret_code += 1"
fi
if [ ! -e $dest_dir ] ; then
    echo "Could not find destination directory $dest_dir. (Use mkdir to create.)"
    let "ret_code += 2"
fi
if [ $ret_code -eq 0 ] ; then
    for dir_to_move in $src_dir/*$dir_str ; do
        echo "For '$dir_to_move':"
        cmd="mv $dir_to_move $dest_dir"
        echo "Executing: $cmd"
        $cmd
    done
fi
exit $ret_code

使用您最喜欢的编辑器来创建脚本。

虽然它不是那么先进,但它具有一定的灵活性,因为您可以指定要移动的目录名称中的文本以及源目录和目标目录。如果您将包含脚本的文件命名为“mv_dirs.sh”,那么要运行它以实现您既定的目标,您可以输入如下内容:

sh mv_dirs.sh _jony /示例/jony

要真正实现此功能,您需要根 (/) 目录的写入权限,而普通用户通常没有该权限。

相关内容