簡體   English   中英

合並子文件夾,Linux

[英]Merging Sub-Folders together, Linux

我有一個主文件夾“ Abc”,其中包含大約800個子文件夾。 這些子文件夾中的每個子文件夾都包含許多文件(所有文件都具有相同的格式,例如“ .doc”)。 如何使用所有這些文件創建一個主文件夾(而不分發到子文件夾中)。 我正在Windows 7計算機上使用cygwin終端執行此操作。

cp -r命令復制它,但將文件保留在子文件夾中,因此它並沒有太大幫助。 非常感謝您的協助。 謝謝!

假設可能存在名稱沖突和多個擴展名,這將創建唯一的名稱,將目錄路徑更改為破折號(例如a/b/c.doc將變為abc.doc )。 在要折疊的文件夾中運行以下命令:

# if globstar is not enabled, you'll need it.
shopt -s globstar
for file in */**; do [ -f "$file" ] && mv -i "$file" "${file//\//-}"; done
# get rid of the now-empty subdirectories.
find . -type d -empty -delete

如果可以保證唯一的名稱,則將移動文件並刪除子目錄。 您可以更改兩個. s到文件夾的名稱,然后從所述文件夾外部運行它:

find . -depth \( -type f -exec mv -i {} . \; \) -o \( -type d -empty -delete \)

這可能不是最優雅或最有效的方法,但是我相信它可以實現您想要的目標:

for file in `find abc`
do
  if [ -f $file ]
  then
    mv $file `basename $file`
  fi
done

遍歷abc中的所有內容,檢查它是否是文件(不是目錄),然后將其從當前位置(例如abc / d / example.txt)移動到abc /

編輯:這會將所有子文件夾保留在原位(但現在它們為空)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM