标签: rename

从 bash 调用 zmv

我最近发现了这种使用以下方法重命名文件的技术zsh

autoload zmv
zmv '(*).JPG' '$1.jpg'
Run Code Online (Sandbox Code Playgroud)

我也可以写成:

autoload zmv; zmv '(*).JPG' '$1.jpg'
Run Code Online (Sandbox Code Playgroud)

这就像宣传的那样工作,我可以用它来将大写JPG扩展名更改为小写。

但是,我想从我常用的 BASH shell 中将它作为单行运行。当我尝试按如下方式调用它时:

zsh -c "autoload zmv; zmv -f '(*).JPG' '$1.jpg'"
Run Code Online (Sandbox Code Playgroud)

或作为:

echo 'autoload zmv; zmv -f "(*).JPG" "$1.jpg"' | zsh -i
Run Code Online (Sandbox Code Playgroud)

我收到类似以下消息

zmv: error(s) in substitution:
….JPG and ….JPG both map to .jpg
Run Code Online (Sandbox Code Playgroud)

这向我表明,这zsh是不区分大小写的处理文件名,但在第一种方式运行时似乎并非如此。

显然,我不知道我在这里做什么。我还尝试反转单引号和双引号,以防外壳扩展受到阻碍。

如何从 bash 以单行方式运行此命令?

shell zsh quoting rename

0
推荐指数
1
解决办法
878
查看次数

命令行修改文件名

我有大量要重命名的文件。这是我想如何更改文件名的示例:

从:

PD5 grey nice display 1.jpg
Run Code Online (Sandbox Code Playgroud)

到:

pd5-grey-nice-display-showcase-1.jpg
Run Code Online (Sandbox Code Playgroud)

我需要使用的命令行代码是什么?

filenames rename

0
推荐指数
1
解决办法
376
查看次数

您可以在不更改目录的情况下方便地重命名文件吗?

有没有一种方便的方法来重命名文件(或目录)而不会重复地重复路径或目录更改?

例如 …

mv -some_flag db/migrations/abc_201911201243.php abc_20191101090000.php
Run Code Online (Sandbox Code Playgroud)

...重命名文件而不将其移出该目录。

我看着这个男人页mvrenamersync却没有找到任何东西,所以我不知道是否有偶然有一个不明显的把戏做到这一点。

bash rename

0
推荐指数
1
解决办法
83
查看次数

从文件名的开头删除单个字符

文件名:

_10_-_Overriding_or_customizing_the_rest_end_point-rkkfgI502f0.mp4
_11_-_Expose_ids_in_json_response-CrDXtLfiZos.mp4
_12_-_Create_angular_8_project_using_Angular_CLI-kSXkW1hF0KU.mp4
_13_-_Create_a_model_class_for_Book_entity-Hfm3da1Ze8E.mp4
_14_-_Display_the_list_of_books_in_html_table_with_hard-coded_values-b5R8CsMrOO4.mp4
_15_-_Create_a_new_book-list_component_and_display_the_book_images-Tto3r229fFA.mp4
_16_-_Make_a_HTTP_GET_request_to_the_Spring_boot_application-98RfVQ9Z3ZM.mp4
_17_-_Understanding_the_Observable_and_Observer-NKLirs5SFYk.mp4
_18_-_Call_a_service_method_to_get_the_book_array-yQ34aPdH1_0.mp4
_19_-_Fix_the_error_CORS_policy_and_display_the_data_in_html_table-YSEAdODxMfE.mp4
_1_-_Course_Introduction-b4pjjftApmY.mp4
_20_-_Replace_the_blank_images_with_real_images-fut1f40FHo4.mp4
_2_-_Setup_the_development_environment-RbUGvRAUpSM.mp4
_3_-_Setup_the_MySQL_database-D3krImBhofo.mp4
_4_-_Create_repository_in_Github_and_add_it_to_Eclipse_IDE-MAkVtB_MhzI.mp4
_5_-_Create_spring_boot_project_using_spring_initializer-GsmqGxEv6rg.mp4
_6_-_Configure_application_properties_and_commit_changes_to_github-HqDZKih-Ehk.mp4
_7_-_Create_an_entity_class_for_book_table-pfxt3BeU_e0.mp4
_8_-_Create_an_entity_class_for_book_table-eg1pJJLAzAQ.mp4
_9_-_Create_rest_repositories_for_book_and_category_entity-w7vFTSCWCOM.mp4
Run Code Online (Sandbox Code Playgroud)

如何_从文件名的开头删除单个字符?

file-management rename

0
推荐指数
1
解决办法
55
查看次数

mv 没有那个文件或目录?重命名多个目录中的文件

这部分是因为我对 BASH 的理解非常浅薄。

这是脚本:

eighteen=(2018*/*)
newe=`echo "$eighteen" | sed -e 's/\(-\)*$//g'`

while read f <&3 && read nf <&4; do     
    mv -v "${f}" "${nf}"
    break
done 3<"$eighteen" 4<"$newe"
Run Code Online (Sandbox Code Playgroud)

我试图弥补我写的糟糕脚本,并删除-多个子文件夹中每个文件名末尾的符号。

和我得到的错误: ./cleanup.sh: line 16: 2018-08-13/untitled-102.arw: No such file or directory

值得注意的是,错误不是来自mv行,而是来自:done 3<"$eighteen" 4<"$newe"

我从 StackExchange 上的答案中复制了 while 循环。速食,通常是不利于消化的,速食之道——理解,请帮我理解。给我一个关于如何4<"$newe" nf <&4调用前面提到的替换的提示,我应该如何搜索以了解更多信息。它是否应用于while语句上下文之外?

shell-script rename mv

0
推荐指数
1
解决办法
878
查看次数

撤消目录中文件的大量重命名?

所以我尝试使用这个脚本来摆脱一堆文件中的用户名

#!/bin/bash

ls | while read -r FILE
do
    mv -v "$FILE" `echo $FILE | tr '[DarkDream]' '.' `
done
Run Code Online (Sandbox Code Playgroud)

相反,所有包含字母d、a、r、k、em 的文件都被替换为a

有没有办法撤销这个?

data-recovery rename files

-1
推荐指数
1
解决办法
1604
查看次数

批量重命名文件,包括连字符及其后的所有内容

我在 Linux 上,我的文件如下所示:

10154-person134_bacteria_640.jpeg         
10163-NORMAL2-IM-0141-0001.jpeg    
10175-person147_bacteria_707.jpeg    
2555-person1_virus_12.jpeg    
25562-person132_bacteria_632.jpeg           
25566-person143_bacteria_687.jpeg    
Run Code Online (Sandbox Code Playgroud)

我需要它们看起来像这样:

10154.jpeg     
10163.jpeg     
10175.jpeg     
2555.jpeg    
25562.jpeg    
25566.jpeg    
Run Code Online (Sandbox Code Playgroud)

我试过 awk,但遇到了问题。

command-line rename

-4
推荐指数
1
解决办法
84
查看次数