我有以下代碼,並在轉碼完成後,我希望移動新創建的文件。但是之後,我不想在轉碼時寫入其他文件夾。這就是爲什麼我認爲使用exec更好,因爲如果以前的exec讀取爲真,只會處理它。另請注意,當前文件夾中可能存在多個文件。移動新創建的文件
#!/bin/bash
#
# Change this to specify a different handbrake preset. You can list them by running: "HandBrakeCLI --preset-list"
#
PRESET="AppleTV 2"
if [ -z "$1" ] ; then
TRANSCODEDIR="/path/to/folder"
else
TRANSCODEDIR="$1"
fi
find "$TRANSCODEDIR"/* -type f -exec bash -c 'HandBrakeCLI -i "$1" -o "${1%.*}".mp4 -- preset="$PRESET"' __ {} \; -exec rm {} \;
我的Linux的小知識,我想也許:
#!/bin/bash
#
# Change this to specify a different handbrake preset. You can list them by running: "HandBrakeCLI --preset-list"
#
PRESET="AppleTV 2"
if [ -z "$1" ] ; then
TRANSCODEDIR="/path/to/folder"
else
TRANSCODEDIR="$1"
fi
find "$TRANSCODEDIR"/* -type f -exec bash -c 'HandBrakeCLI -i "$1" -o "${1%.*}".mp4 -- preset="$PRESET"' __ {} \; -exec rm {} \; -exec mv '"${1%.*}".mp4' "/path to/converted/folder" \;
但這只是推出:
mv: cannot stat â"${1%.*}".mpâ4: No such file or directory
現在,我想也許這是從記事本的某些字符++躲在某處所以我通過dos2uunix運行它。但是我仍然得到相同的錯誤。現在我認爲「$ {1%。}」.mp4實際上並沒有獲得新創建的文件,而是正在尋找名爲「$ {1%。}」的文件.mp4,它不會不存在。
任何幫助,將不勝感激。
將您的5行if/else子句替換爲:'TRANSCODEDIR = $ {1: -/path/to/file}' –
這會將新mp4移動到轉換後的文件夾嗎? TRANSCODEDIR = $ {1: - /路徑/轉換/文件夾}或將此代碼轉換到新的目錄? – Keelan
這只是一種更緊湊的方法來避免你在那裏的if/then/else。 – tripleee