[英]OSX: Copying files to folders with same name
我正在尋找某種腳本,以將大約800個文件(例如:“ 1234567-XXXX XXX”)放置在一個文件夾中,並將單獨的案例編號復制到另一個具有相同案例的文件夾(服務器)的目錄中名稱,在子文件夾下,例如:
“ 1234567-XXXX XXX / 01_Management / 01_Correspondence”(所有文件夾的子文件夾相同)
總結:將一個文件復制到另一個與該文件同名的文件夾中,然后將其放在子文件夾中。
macOS Sierra
謝謝-Theis
您可以使用bash
腳本來做到這一點。
首先進行備份!
將以下內容保存到HOME目錄中,作為reorganise
:
#!/bin/bash
find $(pwd) -name "* -*" -print0 | while read -d $'\0' f; do
echo Processing file $f...
base=$(basename "$f")
echo " base: $base"
case=${base/ -*/}
echo " case: $case"
# EDIT THE FOLLOWING LINE TO BE CORRECT FOR YOU !!!
newplace="/path/to/new/place/$case"
echo mkdir -p "$newplace"
echo cp "$f" "$newplace"
done
然后啟動Terminal
並僅輸入以下命令一次即可使腳本可執行:
chmod +x reorganise
然后轉到文件所在的目錄:
cd where/your/files/are
然后,您可以使用以下命令運行腳本:
$HOME/organise
它會告訴您它將做什么,而不做任何事情。 如果願意,可以刪除倒數第二行和倒數第三行的單詞echo
,然后再次運行。
您至少需要編輯指示的行。
樣本輸出
Processing file /Users/mark/tmp/1234563 - fredb...
base: 1234563 - fredb
case: 1234563
mkdir -p /path/to/new/place/1234563
cp /Users/mark/tmp/1234563 - fredb /path/to/new/place/1234563
Processing file /Users/mark/tmp/1234567 - fred...
base: 1234567 - fred
case: 1234567
mkdir -p /path/to/new/place/1234567
cp /Users/mark/tmp/1234567 - fred /path/to/new/place/1234567
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.