macOS腳本化給文件夾內(nèi)文件添加序號(hào)

  • 目錄
  • 簡(jiǎn)介
  • 效果圖
  • github地址
  • 源碼
  • 使用說(shuō)明
  • 致謝

平時(shí)會(huì)把一些相關(guān)的資源放在一個(gè)文件夾內(nèi)夫壁,日積月累,文件越來(lái)越多

隨便放了一些文件來(lái)演示

而像我這種有強(qiáng)迫癥的人吨些,喜歡把文件前面添加序號(hào)屏轰,這樣看著會(huì)很舒服~

之前都是一個(gè)個(gè)的手改,后來(lái)感覺(jué)有點(diǎn)累(果然懶使人進(jìn)步??????)~

于是碼了個(gè)shell腳本昂灵,初步實(shí)現(xiàn)了功能(macOS環(huán)境)实蓬,但是目前(2018.05.31)只能依賴于系統(tǒng)的排序來(lái)添加前綴缀踪,還不能憑借個(gè)人喜歡,進(jìn)行上浮或者下沉~

入門級(jí)選手 ~

還請(qǐng)大佬帶飛 ~
還請(qǐng)大佬帶飛 ~
還請(qǐng)大佬帶飛 ~


效果圖??


代碼在:世界上最大的交友網(wǎng)站 ---> github


源碼也可以看這里

#!/bin/bash

function ff_cp() {
    file_path=$1
    copy_path=${file_path}"/ff_renamed/"

    if ! [ -d $copy_path ] 
    then
        echo "目標(biāo)文件夾不存在"
        echo "創(chuàng)建目標(biāo)文件夾..."
        mkdir $copy_path
        echo "創(chuàng)建目標(biāo)文件夾成功 $copy_path"
    else
        echo "目標(biāo)文件夾已存在"
    fi

    for (( i = 0; i < ${#files_arr[@]}; i++ )); do
        filename=${files_arr[$i]}
        true_filename=(`echo $filename | sed 's/-/[[:space:]]/g'`)
        tmp_path=$file_path"/"$true_filename
        tmp_i=`expr $i + 1`
        prefix_str=`get_prefix ${#tmp_i}`
        new_path=$copy_path$prefix_str$tmp_i"_"$true_filename
        cp "$tmp_path" "$new_path"
    done
}

function ff_mv() {
    file_path=$1
    for (( i = 0; i < ${#files_arr[@]}; i++ )); do
        filename=${files_arr[$i]}
        true_filename=(`echo $filename | sed 's/-/[[:space:]]/g'`)
        tmp_path=$file_path"/"$true_filename
        tmp_i=`expr $i + 1`
        prefix_str=`get_prefix ${#tmp_i}`
        new_path=$file_path"/"$prefix_str$tmp_i"_"$true_filename
        mv "$tmp_path" "$new_path"
    done
}

function get_prefix () {
    tmp_length=$1
    case $tmp_length in
        1) prefix_str='0'
        ;;
        *) prefix_str='';
        ;;
    esac
    echo $prefix_str
}

# -----

file_path=$1

if [ ${#file_path} -eq 0 ]
then
    echo "非法路徑"
    exit
fi

if [ -d $file_path ]
then
    cd $file_path
    echo "需要操作的文件夾為: $file_path"
else
    echo "路徑不存在"
    exit
fi

tmp_files_arr=(`ls $file_path | sed 's/[[:space:]]/-/g'`)
tmp_num=${#tmp_files_arr[@]}
echo "路徑內(nèi)-內(nèi)容數(shù)量(包含文件和文件夾):$tmp_num"

for filename in ${tmp_files_arr[@]};do
    if ! [ -d $filename ]
    then
        files_arr+=($filename)
    fi
done

files_num=${#files_arr[@]}
echo "路徑內(nèi)-文件數(shù)量:$files_num"

if [ $files_num -eq 0 ]
then
    echo "the dir is empty"
    exit
fi

f_length=${#files_num}

action=$2

if [ "$action" = "mv" ]
then
    ff_mv $file_path
elif [ "$action" = "cp" ]
then
    ff_cp $file_path
elif [ ${#action} -eq 0 ]
then    
    ff_cp $file_path
else
    echo '參數(shù)2只能為 mv 或 cp 或 空(默認(rèn)為cp)'
    exit
fi

echo "操作完成 bye ~"

可以從github下載灭返,或者將??的源碼copy到一個(gè)新建的***.sh文件

  • 這個(gè)腳本只會(huì)操作文件
  • 沒(méi)有實(shí)現(xiàn)遞歸(覺(jué)得也沒(méi)必要遞歸)
  • 亂七八糟的名字沒(méi)做容錯(cuò)
  • 使用的時(shí)候邮弹,第一個(gè)參數(shù)是需要操作的文件夾路徑腌乡,第二個(gè)參數(shù)可以傳 cp mv 或 不傳(不傳時(shí)默認(rèn)為cp
    • 參數(shù)2為 cp時(shí)急迂,會(huì)創(chuàng)建一個(gè)新的文件夾裂七,名為ff_renamed毛雇,可以自行修改羡棵,但是要確保當(dāng)前文件夾中沒(méi)有重名,然后會(huì)復(fù)制目標(biāo)文件并重命名到ff_renamed
    • 參數(shù)2為mv時(shí)灼擂,會(huì)直接改動(dòng)目標(biāo)文件
  • 數(shù)據(jù)無(wú)價(jià)觉至,盡量使用cp剔应,確認(rèn)無(wú)誤后手動(dòng)刪除舊文件
  • 數(shù)據(jù)無(wú)價(jià)语御,盡量使用cp,確認(rèn)無(wú)誤后手動(dòng)刪除舊文件
  • 數(shù)據(jù)無(wú)價(jià)应闯,盡量使用cp,確認(rèn)無(wú)誤后手動(dòng)刪除舊文件
ff:~ fengfeng$ sh filenameHandle.sh /Users/fengfeng/Desktop/tmp
需要操作的文件夾為: /Users/fengfeng/Desktop/tmp
路徑內(nèi)-內(nèi)容數(shù)量(包含文件和文件夾):6
路徑內(nèi)-文件數(shù)量:6
目標(biāo)文件夾不存在
創(chuàng)建目標(biāo)文件夾...
創(chuàng)建目標(biāo)文件夾成功 /Users/fengfeng/Desktop/tmp/ff_renamed/
操作完成 bye ~
ff:~ fengfeng$ 

最終效果??

講真船万,目前也只是能用,還有許多待優(yōu)化的地方(比如 指定排序耿导、容錯(cuò)也只處理了文件名中有空格的情況、前綴只能是數(shù)字 ...)舱呻,有時(shí)間再弄優(yōu)化 ~

終于不用再一個(gè)個(gè)的改名字了 ~
(??????)?? ~


不定期更新 不合適的地方 還請(qǐng)指點(diǎn)~ 感激不盡

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市芥驳,隨后出現(xiàn)的幾起案子茬高,更是在濱河造成了極大的恐慌兆旬,老刑警劉巖雅采,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異宝鼓,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)愚铡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門胡陪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人柠座,你說(shuō)我怎么就攤上這事÷杈” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵吹泡,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我洞难,道長(zhǎng),這世上最難降的妖魔是什么队贱? 我笑而不...
    開(kāi)封第一講書人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮柱嫌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘慎式。我一直安慰自己趟径,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布掌眠。 她就那樣靜靜地躺著,像睡著了一般幕屹。 火紅的嫁衣襯著肌膚如雪蓝丙。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 49,784評(píng)論 1 290
  • 那天望拖,我揣著相機(jī)與錄音渺尘,去河邊找鬼。 笑死说敏,一個(gè)胖子當(dāng)著我的面吹牛鸥跟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播盔沫,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼医咨,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了架诞?” 一聲冷哼從身側(cè)響起拟淮,我...
    開(kāi)封第一講書人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎谴忧,沒(méi)想到半個(gè)月后很泊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡俏蛮,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年撑蚌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了搏屑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片争涌。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖辣恋,靈堂內(nèi)的尸體忽然破棺而出亮垫,到底是詐尸還是另有隱情模软,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布饮潦,位于F島的核電站燃异,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏继蜡。R本人自食惡果不足惜回俐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望稀并。 院中可真熱鬧仅颇,春花似錦、人聲如沸碘举。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)引颈。三九已至耕皮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蝙场,已是汗流浹背凌停。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留李丰,地道東北人苦锨。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像趴泌,于是被迫代替她去往敵國(guó)和親舟舒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容