我想从改变文件扩展名*.txt
来*.text
。我尝试使用该basename
命令,但在更改多个文件时遇到问题。
这是我的代码:
files=`ls -1 *.txt`
for x in $files
do
mv $x "`basename $files .txt`.text"
done
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
files=`ls -1 *.txt`
for x in $files
do
mv $x "`basename $files .txt`.text"
done
Run Code Online (Sandbox Code Playgroud) 我有一个充满图像的目录:
image0001.png
image0002.png
image0003.png
...
Run Code Online (Sandbox Code Playgroud)
我想要一个单线将它们重命名为(比如说)。
0001.png
0002.png
0003.png
...
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?
假设我有名为 的文件ugly_name.tar
,提取后将成为ugly_name
目录。我可以使用什么命令来pretty_name
代替生成的目录名称?
这可能很简单,但我无法弄清楚。我有一个这样的目录结构(dir2 在 dir1 中):
/dir1
/dir2
|
--- file1
|
--- file2
Run Code Online (Sandbox Code Playgroud)
以这样的方式“扁平化”这个导演结构的最佳方法是在 dir1 而不是 dir2 中获取 file1 和 file2。
https://serverfault.com/questions/70939/how-to-replace-a-text-string-in-multiple-files-in-linux
https://serverfault.com/questions/228733/how-to-rename-multiple-files-by-replacing-word-in-file-name
https://serverfault.com/questions/212153/replace-string-in-files-with-certain-file-extension
https://serverfault.com/questions/33158/searching-a-number-of-files-for-a-string-in-linux
上面提到的这些文章都回答了我的问题。然而,它们都不适合我。我怀疑这是因为我试图替换的字符串中有一个 # 。有没有特殊的方法来解决这个问题?
我有一个图像文件,在站点迁移期间将 é 替换为 #U00a9。这些看起来像这样:
Lucky-#U00a9NBC-80x60.jpg
Lucky-#U00a9NBC-125x125.jpg
Lucky-#U00a9NBC-150x150.jpg
Lucky-#U00a9NBC-250x250.jpg
Lucky-#U00a9NBC-282x232.jpg
Lucky-#U00a9NBC-300x150.jpg
Lucky-#U00a9NBC-300x200.jpg
Lucky-#U00a9NBC-300x250.jpg
Lucky-#U00a9NBC-360x240.jpg
Lucky-#U00a9NBC-400x250.jpg
Lucky-#U00a9NBC-430x270.jpg
Lucky-#U00a9NBC-480x240.jpg
Lucky-#U00a9NBC-600x240.jpg
Lucky-#U00a9NBC-600x250.jpg
Lucky-#U00a9NBC.jpg
Run Code Online (Sandbox Code Playgroud)
我想把它改成这样:
Lucky-safeNBC-80x60.jpg
Lucky-safeNBC-125x125.jpg
Lucky-safeNBC-150x150.jpg
Lucky-safeNBC-250x250.jpg
Lucky-safeNBC-282x232.jpg
Lucky-safeNBC-300x150.jpg
Lucky-safeNBC-300x200.jpg
Lucky-safeNBC-300x250.jpg
Lucky-safeNBC-360x240.jpg
Lucky-safeNBC-400x250.jpg
Lucky-safeNBC-430x270.jpg
Lucky-safeNBC-480x240.jpg
Lucky-safeNBC-600x240.jpg
Lucky-safeNBC-600x250.jpg
Lucky-safeNBC.jpg
Run Code Online (Sandbox Code Playgroud)
更新:
这些示例都以“LU00a9ucky”开头,但这里有许多名称不同的图像。我只是将字符串的“#U00a9”部分定位为“safe”。
我正在尝试将当前日期附加到文件名的末尾,如下所示:
TheFile.log.2012-02-11
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所拥有的:
set today = 'date +%Y'
mkdir -p The_Logs &
find . -name The_Logs -atime -1 -type d -exec mv \{} "The_Logs_+$today" \; &
Run Code Online (Sandbox Code Playgroud)
但是我得到的只是文件的名称,它没有附加任何内容。如何将当前日期附加到文件名?
如何批量替换多个文件的前缀?
我有很多文件,比如
我想将它们全部更改为
我该怎么做?