我想使用 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/