我想将名为“*_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
要真正实现此功能,您需要根 (/) 目录的写入权限,而普通用户通常没有该权限。