是否可以在 Fish 中批量重命名文件,以便将空格替换为下划线?
我试图自己弄清楚,但还没有成功:https://fishshell.com/docs/current/cmds/string.html#replace-literal-examples。
我尝试过类似
for file in *; mv $file $file | string replace -a ' ' '_'; end
但这两种解决方案对我来说都不起作用。
是否可以在 Fish 中批量重命名文件,以便将空格替换为下划线?
我试图自己弄清楚,但还没有成功:https://fishshell.com/docs/current/cmds/string.html#replace-literal-examples。
我尝试过类似
for file in *; mv $file $file | string replace -a ' ' '_'; end
但这两种解决方案对我来说都不起作用。
我被分配管理遗留的 codeIgniter 3 代码库。存在此错误,该网站未加载.JPG
.我们不想使其不区分大小写,而是希望将 every 更改.JPG
为.jpg
.这是文件结构:
- 0
- 1
- 10
- 100
- 101
- 0
- 1
- 10
- 11
- 10111
- image.JPG
- image-small.jpg
- ...
- 12
- ...
- 102
- ...
我知道如何循环遍历文件并替换扩展名,但不知道如何循环遍历这么多文件夹。
此代码用于替换扩展名for file in *.JPG; do mv -- "$file" "${f%.JPG}.jpg"; done
好的,我有一些文件的名称中的不同位置具有诸如 - 之类的字符。我想改变 - 让我们说_
是否可以通过命令行
文件名示例
one-test.pdf
test - old.pdf
3-.pdf
cat-and-dog.pdf
非常感谢
使用Ubuntu 22.04
我有一个包含一堆文件的文件夹,我想更改文件扩展名,所以我使用了:
rename 's/\.zip$/\.cbz/' *.zip
该命令完成后没有抛出任何错误,但我发现大约 2/3 的文件丢失了。我认为这与某些包含括号或引号的文件的名称有关,但我知道一些丢失的文件comic5.zip
的名称非常简单(),并且我发现每个名称以括号开头的文件现在都丢失了。
我尝试使用 photorec 来恢复这些文件,但它找不到其中一个。
现在文件夹大小小了很多,这似乎表明它们已被删除,但如果是这样的话,我会认为 photorec 能够恢复至少其中一些。仅使用我的文件资源管理器,运行该命令之前该文件夹约为 120GB,运行后约为 40GB。不幸的是,我没有在命令之前查看文件的实际数量,但我也可以通过滚动来判断文件少得多。
有谁知道这些文件发生了什么以及是否可以恢复?
$ rename -V
/usr/bin/rename using File::Rename version 1.30, File::Rename::Options version 1.10
更新:
结果我忘记更改 photorec 中以前的一些设置,我再次运行它,它确实找到了丢失的文件,很确定现在所有文件都已恢复。我认为这证实了这些文件实际上已被删除。仍然不确定它是如何发生的,但我认为斯蒂芬的解释是最有可能的。
无论如何,感谢您的帮助。
我需要在 Ubuntu 系统上重命名一堆文件(超过 100 个),并且想知道当文件的模式类似于 Windows 中的“Filename_01.jpg”到“NameOfFile_01.jpg”时如何执行此操作,我会输入:
ren Filename_*.jpg NameOfFile*.jpg
由于我发现的各种命令(重命名、mmv 等)的工作方式和语法示例非常复杂,我无法弄清楚这些命令的头绪或尾部。我不需要完整解释该命令如何工作,我只需要执行此操作的确切语法。
我希望创建一个 *BSD 兼容的 C 函数,如下所示:
int
fs_ext__swap (const char *from, const char *to) {
int res = renameatx_np(AT_FDCWD, from, AT_FDCWD, to, RENAME_SWAP);
return res == -1 ? uv_translate_sys_error(errno) : res;
}
目前我收到构建错误 ( 'renameatx_np' is invalid in C99 [-Wimplicit-function-declaration]
),因为据我所知,该renameatx_np
功能是 MacOS 独有的。*BSD 是否有等效版本(我使用的是 OpenBSD 7.3 atm)?
RENAME_SWAP
如果我删除标志并将函数更改为renameat
(编辑:我试过这个,它构建和编译正常但在上游测试期间导致 ENOENT 错误),我会冒什么风险?
我的计划是使用linkat和unlinkat函数来模拟renameatx_np的功能。
我还能如何处理这个问题?
我有一个包含 ogg 文件的目录,想更改以i-
.
我能做什么?例如,做rename 's/i-nuovi/nuovi/g' *
给了我
Unknown option: marino-barreto-cinque-minuti-ancora.ogg
Usage:
rename [ -h|-m|-V ] [ -v ] [ -n ] [ -f ] [ -e|-E perlexpr]*|perlexpr
[ files ]
出了点问题,但无法追踪。如何确保我i-
从头开始观看?
例如,我有一个文件列表
./2020/47-06/gl-086115.org
./2020/47-06/gl-085792.org
./2020/47-06/gl-086941.org
./2020/47-06/gl-087140.pdf
./2020/47-06/gl-085982.pdf
./2020/47-06/gl-087032.org
./2020/47-06/gl-086115.pdf
./2020/47-06/gl-087490.pdf
我正在使用以下命令删除开头gl-
,但没有成功。
find . -type f -name '*gl-*' -exec rename 's/^gl-//g' {} \;
我有一个38GB的文件夹,里面有800个mp4视频,重新下载后,文件名没有空格,所有单词都拼接了,但仍然是Title Case。
批量重命名最有效的方法是什么?
我记得很久以前我的发行版中包含一个“重命名”或“自动重命名”,但我现在似乎没有了。
我需要批量重命名文件更改.-.
为.
目标:file.-.txt
现在file.txt
rename 's/.-./.' *.txt
不工作。怎么了?