python - 使用函数重命名文件

标签 python bash

我想使用 bash 重命名目录中的文件。

我正在尝试:

find . -type f -exec mv '{}' $(urlencode {})  \;

但是 urlencode 按字面意思编码 {} 而不是获取查找结果。

如果更改为:

. -type f -exec mv '{}' $(echo {})  \;

echo 打印查找结果。

urlencode 是一个别名:

$alias urlencode='python -c "import sys, urllib as ul; \
    print ul.quote_plus(sys.argv[1])"

Decoding URL encoding (percent encoding)

任何人都可以解释这种行为并提出解决方案吗?

最佳答案

使用bash -c命令:

find . -type f -exec bash -c 'mv "$1" $(urlencode "$1")' _ {}  \;

关于python - 使用函数重命名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47814258/

相关文章:

bash 测试 cmd 失败,参数过多

linux - 如何在 shell 脚本中只运行一次命令

Python:从字典中具有最大值的键列表中随机选择

python - 按列将 csv 拆分为多个 csv 文件

python - Python 中的按位减法

linux - 两次 Bash 命令替换

linux - CSV 上的复杂 awk 循环

python - 如何获取 python ctypes 结构成员的长度以格式化十六进制输出?

Python如何运行这个函数得到100个素数

bash - cURL 调用 REST Api