代码拉取完成,页面将自动刷新
同步操作将从 MJ PC Lab/Shell Utility 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#!/bin/bash
# change filename using command 'tr'
# Usage: fn-tr -p <tr parameters> -fdr <file/directory> <file/directory> ...
# -p parameters will transfered to command 'tr'
# -d change directory
# -f change normal file
# -r recursive
# known issues:
# can not change filename case under MS-Windows
trParams='';
changedir=0;
changefile=0;
recurse=0;
while getopts ':p:dfr' opt; do
case $opt in
p)
trParams=$OPTARG;
;;
d)
changedir=1;
;;
f)
changefile=1;
;;
r)
recurse=1;
;;
esac;
done;
shift $(($OPTIND-1));
function trFile()
{
oldpathname="$1";
oldname=$(basename "$oldpathname");
path=$(dirname "$oldpathname");
newname=$(eval "echo '$oldname' | tr $trParams");
newpathname=$path'/'$newname;
oldpathname=$(echo "$oldpathname" | tr -s '/');
oldpathname=${oldpathname#./};
oldpathname=${oldpathname%/};
newpathname=$(echo "$newpathname" | tr -s '/');
newpathname=${newpathname#./};
newpathname=${newpathname%/};
if [ "$oldname" != "$newname" -a -n "$newname" ]; then
if [ ! -e "$newname" ]; then
mv -Tn "$oldpathname" "$newpathname" &&
echo "$oldpathname --> $newpathname [OK]" ||
echo "$oldpathname --> $newpathname [Failed]" >&2
else
echo "$oldpathname --> $newpathname [Skipped, target exists]" >&2
fi;
fi;
}
function iterateFile()
{
local file;
for file in "$@"; do
if [ -n "$file" -a -e "$file" ]; then
if [ -d "$file" ]; then
if [ $recurse -eq 1 ]; then
eval "iterateFile '${file%/}'/*"
fi;
if [ $changedir -eq 1 ]; then trFile "$file"; fi;
else
if [ $changefile -eq 1 ]; then trFile "$file"; fi;
fi;
fi;
done;
}
startFiles=$@;
if [ -z "$startFiles" -o -z "$trParams" ]; then
echo "Usage: $(basename $0) -p <tr parameters> -fdr <file/directory> <file/directory> ..." >&2
fi;
iterateFile "$@";
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。