如何删除具有特定名称(例如128Kbps_Songs)的所有文件夹而不删除其文件
例如,如果我的目录“ MP3_SONGS”的子目录为“ A”,“ B”,“ C”,并且每个子目录的目录都为MANY,则其中包含电影名称“ FILM_NAME1”,“ FILM_NAME2”,“ FILM_NAME3”我在此“ 128Kbps_Songs”文件夹中有特定的文件夹NAme(128Kbps_Songs),我拥有该电影mp3歌曲文件
如何删除每个Film_Name目录中的文件夹“ 128Kbps_Songs”,并必须在该FILM_NAME中获取这些mp3歌曲。(必须删除所有FILM_NAME中的128Kbps_Songs文件夹而不删除其中的mp3歌曲,必须在FILM_NAME中获取mp3目录..
MP3_SONGS (Parent Directory) ------ A , B, C
A (Sub Directory1) ------ FILM_NAME1 , FILM_NAME2
B (Sub Directory2) ------ FILM_NAME3 , FILM_NAME4
c (Sub Directory3) ------ FILM_NAME5 , FILM_NAME6
FILM_NAME1 (Directory) ---- 128Kbps_Songs (Directory) ------ FILM_NAME1 (MP3 Files)
FILM_NAME2 (Directory) ---- 128Kbps_Songs (Directory) ------ FILM_NAME2 (MP3 Files)
FILM_NAME3 (Directory) ---- 128Kbps_Songs (Directory) ------ FILM_NAME3 (MP3 Files)
FILM_NAME4 (Directory) ---- 128Kbps_Songs (Directory) ------ FILM_NAME4 (MP3 Files)
FILM_NAME5 (Directory) ---- 128Kbps_Songs (Directory) ------ FILM_NAME5 (MP3 Files)
FILM_NAME6 (Directory) ---- 128Kbps_Songs (Directory) ------ FILM_NAME6 (MP3 Files)
Need Files in:
FILM_NAME1 (Directory) ------ FILM_NAME1 (MP3 Files)
FILM_NAME2 (Directory) ------ FILM_NAME2 (MP3 Files)
FILM_NAME3 (Directory) ------ FILM_NAME3 (MP3 Files)
FILM_NAME4 (Directory) ------ FILM_NAME4 (MP3 Files)
FILM_NAME5 (Directory) ------ FILM_NAME5 (MP3 Files)
FILM_NAME6 (Directory) ------ FILM_NAME6 (MP3 Files)
创建一个包含以下内容的简单脚本
#!/bin/bash
while IFS= read -r -d '' n;
do
dir=$(dirname "$n") ;
mv "${n}"/* "${dir}"
rmdir "${n}"
done < <(find -type d -name "128Kbps_Songs" -print0)
保存并使用以下文件使其可执行 chmod +x your_script
现在使用 ./your_script
这样IFS=
做是为了保留文件名或路径中的空格。
-r
-在读取的数据中禁用反斜杠转义和行继续的解释。
-d
-将分隔符识别为数据端。在这里它清空了IFS
dirname
用于128Kbps_Songs
从find命令输出中删除最后一个文件夹名称。(从./temp/MP3_SONGS/128Kbps_Songs
到./temp/MP3_SONGS
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句