重命名程序的使用严重搞砸了我的一些文件。我正在努力让他们恢复秩序。
我有这样的文件结构:
./Hello World/some-filename.ext
./Kitty Parade/another.ext
./Third Example/abc.ext
./some-filename.ext2
./another.ext2
./abc.ext2
目标是将当前文件夹 (./) 中的文件移回其原始文件夹。
例如:
another.ext2属于./Kitty Parade/文件夹
some-filename.ext2属于./Hello World/文件夹
abc.ex2属于文件夹./Third Example/`
规则可以这样描述:如果当前文件夹(./)中存在文件,则找到包含具有相同文件名(但具有不同扩展名)的文件的文件夹并将其移动到该文件夹中。注意:./myFilename与该文件的./originalFolderName.
这发生在 4,000 多个文件上,否则我会手动完成。任何可能的帮助?
我编写了这个备份脚本,它查看文件并将最近的文件复制到一个文件夹中。
#!/usr/bin/bash
# the number of days to do the backup for.
days=2;
# the files to backup.
location[0]='/opt/location'
# the location to copy the file to
copyLocation='/users/me/Backup/firstBackupScriptTry'
# preform the back up
for i in ${location[*]}
do
find $i \! -name '*.class' -mtime -$days \! -type d -exec cp {} $copyLocation \;
done
Run Code Online (Sandbox Code Playgroud)
它有效,但不是那么有用。
我希望脚本在复制时保留目录结构。即我希望它这样做:cp -r from to但只复制最近的文件。
我使用 zip 将本地目录定期备份到远程机器上。他们不相信这里的 rsync 之类的东西,所以这是我能做的最好的(?)。这是我使用的脚本
echo $(date)>>~/backuplog.txt;
if [[ -e /Volumes/backup/ ]];
then
cd /Volumes/Non-RAID_Storage/;
for file in projects/*;
do nice -n 10 zip -vru9 /Volumes/backup/nonRaidStorage.backup.zip "$file" 2>&1 | grep -v "zip info: local extra (21 bytes)">>~/backuplog.txt;
done;
else
echo "backup volume not mounted">>~/backuplog.txt;
fi
Run Code Online (Sandbox Code Playgroud)
这一切都很好,除了 zip 从不使用太多 CPU,所以它似乎比它应该花费的时间更长。它似乎永远不会超过 5%。我试着让它变得更好 -20 但这没有任何区别。仅仅是网络或磁盘速度阻碍了进程还是我做错了什么?
#!/bin/bash
echo "Int. a number"
read num1
echo "Int. another numer"
read num2
if ["$num1"="$num2"]; then
echo "Equals"
else
echo "Dif"
fi
if["$num1"<0]; then
echo "The number $num1 is negative"
else if ["$num2"<0]; then
echo "The number $num2 is negative"
fi
#
Run Code Online (Sandbox Code Playgroud)
这段代码不起作用,当我看到数字是否小于 0 时,我出了点问题。
谢谢
我知道一些有用的 Bash shell 快捷方式,我想知道是否还有其他快捷方式。我认识的人:
我特别好奇的是以下几点:
以及任何其他有用的快捷方式(如果有)。
我创建了一个别名,这样当我输入la它时ls -la。
当我在 Mac 上启动终端时,我得到:
-bash: alias: la: not found
-bash: alias: =ls -la: not found
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
我的 .bash_profile 看起来像:
alias la ='ls -la'
Run Code Online (Sandbox Code Playgroud) 我有一个 cron 工作,每天早上 7 点将所有 Google 任务的列表邮寄到我的电子邮件地址。( http://privacylog.blogspot.com/2010/07/api-for-google-tasks.html )
我在我的笔记本电脑上运行它,就像我一样,早上 7 点处于睡眠模式。
我可以在每天将机器从睡眠中唤醒后修复此问题吗?
Last login: Thu Sep 16 15:13:07 from bubs
-bash: export: `/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin': not a valid identifier
rick:~ rick$
Run Code Online (Sandbox Code Playgroud)
当我在 OS X 中打开一个新的终端窗口时,它总是给我这个错误。我对 Mac(或 *nix)的所有事情都一无所知,并且找不到在打开窗口时调用此导出命令的配置或其他内容的位置
目前终端提示如下所示:
[karlis@karlis-desktop current_folder]$
Run Code Online (Sandbox Code Playgroud)
如何最小化提示,以便它只显示 $ 或 # 而没有方括号中的额外信息?
我检查了默认 Gnome-Terminal 和 Terminator 的首选项 - 没有设置。在长名称的目录中工作时,很难使用终端。