ย้ายไฟล์หลาย ๆ ไฟล์ซ้อนกันจนกว่าพวกเขาจะมีเพียงไดเรกทอรีเดียว


1

ฉันมีหลายไฟล์ในหลายไดเรกทอรีบางฝังอยู่ภายใต้ไดเรกทอรีย่อย ฉันต้องการที่จะสามารถย้ายไฟล์ทั้งหมดจนกว่าพวกเขาจะมีเพียง 1 ไดเรกทอรีลึก

ตัวอย่างเช่น:

/home/folder/subfolder/file1.txt
/home/folder2/file2.txt
/home/folder3/subfolder/subfolder/subfolder/file3.txt

กลายเป็น:

/home/folder/file1.txt
/home/folder2/file2.txt
/home/folder3/file3.txt

ฉันพบว่าฉันสามารถใช้

find ./*/ -type f

เพื่อค้นหาไฟล์ทั้งหมด แต่ฉันไม่แน่ใจว่าจะย้ายพวกเขาอย่างไรเพื่อให้พวกเขามีเพียงไดเรกทอรีเดียว

คำตอบ:


0

ฉันพบคำตอบในรูปแบบของสคริปต์ทุบตี

#!/bin/sh

IFS='
'
for i in $(find ./*/ -mindepth 2 -type f); do
    mv -- "${i}" "${i%/*/*}"
done
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.