[英]Organizing different files with a naming convention?
我剛剛完成了 linux cli 的簡短課程,我正在嘗試使用 cli 作為一種方式來組織和整理目錄中的文件。
這些文件的格式各不相同(.png、.jpg、.mp4、.txt 等),帶有甚至與文件無關的長字符串名稱。
我的目標是用一個通用名稱重命名所有這些(無論分機類型如何)並根據他們的訂單數量附加一個數字。 (同時保持擴展類型不變)
例子:
blahblah1234_4312.txt、randompic-2022-14-15.jpg、logo_3355234234.png、slowmovideo_2020-31-06.mp4
重命名為:
droneProject_1.txt、droneProject_2.jpg、droneProject_3.png、droneProject_4.mp4
我將在其他目錄上執行相同的過程,所以我想我需要制作一個 bash 腳本,該腳本將所需的通用名稱作為$1並將所選目錄作為$2 。
我知道告訴腳本做什么,但我不知道如何正確編碼,到目前為止,這是我的嘗試; (這是偽代碼......我認為)
for file in $2
do
orderCount=1
mv $singleFile $1_$orderCount.keepExtensionType
orderCount=+1
done
似乎我不知道自己在做什么,但對我來說偽代碼很有意義......幫助
訣竅是${f##*.}
提取文件擴展名。 rest 很簡單(?)。
#!/bin/bash
count=1
for f in $2/* ; do
EXT=${f##*.}
mv $f $1_${count}.${EXT}
count=$(( $count + 1 ))
done
我會這樣做:
#!/bin/bash
prefix=$1
dir=$2
cd "$dir" || exit
n=0
for file in *.*; do
[[ -f $file ]] || continue
printf -v dest '%s_%d.%s' "$prefix" $((++n)) "${file##*.}"
mv -i "$file" "$dest"
done
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.