簡體   English   中英

使用命名約定組織不同的文件?

[英]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.

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