我有一個名爲「week1」的文件夾,並且在該文件夾中有大約十個其他文件夾全部包含多個文件,其中包括一個名爲「submit.pdf」的文件夾。我希望能夠將所有「submit.pdf」文件複製到一個文件夾中,理想情況下使用終端來加快此過程。我試過cp week1/*/submit.pdf week1/
以及cp week1/*/*.pdf week1/
,但它只能複製一個文件。我只是意識到它每次都在寫每個文件,這就是爲什麼我被困在一個......有反正我可以防止這種情況發生嗎?如何使用終端從多個文件夾複製和重命名文件?
2
A
回答
2
您沒有指明您的操作系統,但是如果您使用的是Gnu cp
,則可以使用cp week1/*/submit.pdf --backup=t week/
使其具有(任意)已存在的數字文件;但是,這不會給你任何真正的方法來確定哪個是哪個。
你可以,也許,做這樣的事情:
for file in week1/*/submit.pdf; do cp "$file" "${file//\//-}"; done
...這將產生一個名爲類似文件「week1-子目錄提交。PDF」
對於它的價值,在"${var/s/r}"
符號表示採取VAR,但將它的值之前,搜索小號(\/
,意爲/
,躲過因爲在表達式中的其他特殊/
的)與[R(-
)替換它,使唯一的文件名
編輯:有實際上是一個更/
在T這裏,使其匹配多次,使語法如下:
"${ var / / \// - }"
take "var" replace every instance of/ with -
1
find
來救援!經驗法則:如果你可以用find
列出你想要的文件,你可以複製它們。所以首先嚐試這樣的:
$ cd your_folder
$ find . -type f -iname 'submit.pdf'
一些注意事項:
find .
意味着 「開始從當前目錄下找到」-type -f
手段 「只能找到普通文件」(即不是目錄)-iname 'submit.pdf'
「...不區分大小寫的名稱'submit.dpf'」。你不需要使用'quotation'
,但是如果你想使用通配符搜索,你需要。例如: -~ foo$ find /usr/lib -iname '*.So*' /usr/lib/pam/pam_deny.so.2 /usr/lib/pam/pam_env.so.2 /usr/lib/pam/pam_group.so.2 ...
如果您想要搜索區分大小寫,只使用-name
代替-iname
。
當這項工作時,您可以使用-exec
命令複製每個文件。 exec
通過讓你指定命令來使用命中來工作。它會爲每個文件運行命令find
查找,並將該文件的名稱放入{}
。您通過指定\;
來結束命令序列。
所以要echo
的所有文件,這樣做:
$ find . -type f -iname submit.pdf -exec echo Found file {} \;
複製它們逐個:
$ find . -type f -iname submit.pdf -exec cp {} /destination/folder \;
希望這有助於!
相關問題
- 1. Bash:複製+重命名文件夾
- 2. 複製後重命名文件夾
- 3. 使用VBA複製和重命名文件夾
- 4. 如何使用Ant重命名文件和文件夾
- 5. 使用cmd重命名文件夾中的多個文件
- 6. 將文件從一個文件夾複製到另一個文件夾,並使用舊文件名+時間戳重命名新文件夾中的文件
- 7. 複製文件夾並使用命令提示符重命名
- 8. Bash終端命令重命名多個文件
- 9. 使用.bat文件語言複製和重命名文件?
- 10. Applescript - 重複文件夾,然後重命名和重命名文件
- 11. 我如何批量使用終端重命名文件?
- 12. 如何將舊文件夾複製到新文件夾並重命名新文件夾中的文件
- 13. 重命名多個文件夾內的多個文件
- 14. 如何使用終端複製文件夾中的特定文件
- 15. 將文件從文件夾複製到具有文件名的文件夾並重命名爲時間戳
- 16. ubuntu終端重命名文件(vlc * .png)
- 17. 在Ubuntu終端重命名文件
- 18. 終端:使用圖像信息從sips重命名文件
- 19. 重命名文件而不復制到同一文件夾中
- 20. git的發現和重命名多個文件名和文件夾名稱
- 21. 使用vba從多個子文件夾複製文件
- 22. 如何使用PyQt複製文件夾和子文件夾
- 23. Gradle複製和重命名文件
- 24. 用php重命名文件夾中的重複文件
- 25. 重命名文件夾,子文件夾和文件
- 26. 在bash中重命名文件夾,文件和子文件夾
- 27. 如何重命名正在複製和複製文件的文件
- 28. 使用文件夾名稱複製和重命名文件的批處理文件
- 29. 如何使用php複製php文件多個文件名?
- 30. 按順序查找多個文件,複製和重命名
is * submit.pdf *文件夾的名稱? (順便說一句,它看起來像你使用BASH或其他shell來做到這一點,而不是終端。終端(大概)是Mac OS X應用程序。) – kojiro 2011-12-15 17:54:27
submit.pdf是我想要的文件的名稱複製。另外,我正在使用終端應用程序,但它在標題欄上顯示`bash`,所以必須是shell。雖然我不知道這意味着什麼。 – Travis 2011-12-15 21:25:47
終端可讓您「進入」文本實用程序。你正在運行的shell是`bash`,Bourne Again SHell,它是Bourne Shell的Gnu版本。 – BRFennPocock 2011-12-15 22:22:24