Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux centos Shell脚本到mv动态文件名_Linux_Centos_Mv - Fatal编程技术网

Linux centos Shell脚本到mv动态文件名

Linux centos Shell脚本到mv动态文件名,linux,centos,mv,Linux,Centos,Mv,我有以下文件结构: /uploads//10/155 对于每个blog\u id,都有一个名为10的文件夹,该文件夹中还有另一个文件夹155。文件夹155中有一堆文件 我只是尝试将所有/10/155中的所有文件移动到所有/10中 基本上,我只想删除155文件夹,将其内容向下移动到10。我不在乎155是留在那里还是被删除 我已尝试了此脚本的多个版本: for file in /var/www/html/uploads/*/10/155; do mv $file ${file%/*}/10; don

我有以下文件结构:

/uploads//10/155

对于每个blog\u id,都有一个名为
10
的文件夹,该文件夹中还有另一个文件夹
155
。文件夹
155
中有一堆文件

我只是尝试将所有
/10/155
中的所有文件移动到所有
/10

基本上,我只想删除
155
文件夹,将其内容向下移动到
10
。我不在乎
155
是留在那里还是被删除

我已尝试了此脚本的多个版本:

for file in /var/www/html/uploads/*/10/155; do mv $file ${file%/*}/10; done
最终,我能够将155文件夹重命名为10,比如:
*/10/10
。我将155向下移动了两个级别(靠近
10
),例如:
*/155


有什么帮助吗?

只需在blog\u id目录上循环即可。然后,对于其中的每一项,您都可以做您需要的事情:

for blog_dir in /uploads/*; do
    mv "$blog_dir"/10/155/* "$blog_dir"/10/
    rmdir "$blog_dir"/10/155
done

通常,如果要将
$path
向上移动一级,可以执行
mv“$path”“${path%/*}/。”