美文网首页
使用shell脚本整理桌面

使用shell脚本整理桌面

作者: ZeroBugs | 来源:发表于2018-09-02 19:09 被阅读0次

    目的:

    每天都有一些临时任务, 而且喜欢在桌面创建文件或者文件夹. 导致桌面越来越杂乱. 看着糟心. 每天将没处理的任务移到指定文件夹, 有时间了再同一处理. 针对这一情况,写了一个脚本来处理.

    实现目标:
    桌面志保留: 每日必看,每日任务,桌面整理.sh 三个文件. 其他文件都根据日期归档到每日任务.

    整理前:


    整理前.jpg

    整理后:


    整理后.jpg

    其实世界使用Move命令就可以. 但发现若文件名称中包含空格,会出问题. 所有对该问题进行了处理.
    已知bug:

    文件夹处理上有一些问题,log打印给人看着不爽, 但不影响使用. 有时间了再看看

    脚本实现

    
    #!/bin/bash
    #桌面所有文件移动到今日目录
    
    
    # 处理名称中包含空格的文件
    function_safename(){
      path=$1
      echo "$path"
      for file in ${path}; do
    
          if [[ $file =~ "整理桌面.sh" ]]; then
            echo "整理桌面.sh 不处理"
            continue
          fi
          if [[ $file =~ "每日任务" ]]; then
            echo "每日任务 不处理"
            continue
          fi
          if [[ $file =~ "每日必看" ]]; then
            echo "每日必看 不处理"
            continue
          fi
    
          safename1="$(echo $file | sed 's/ /_-_/g')"
          echo "convert  >>>> ${safename1}"
    
          mv "${file}" ${safename1}
      done
    }
    
    #恢复名称中的空格
    function_original(){
      path=$1
      for file in ${path}; do
          original="$(echo $file | sed s'/_-_/ /g')"
          echo "recover ---> ${original}"
          mv ${file} "${original}"
      done
    }
    
    #init
    #进入桌面文件
    cd ~/Desktop/   #将该路径设置为要整理的路径. 我就整理文件夹.
    desktop=`pwd ~/Desktop`
    workPath="$desktop""/*"
    
    function_safename "$workPath"  #去除文件名中的空格
    
    savepath="/Users/Name/Desktop/每日任务/"  #将该名称替换为想要保存的路径.
    ls_date=`date +%Y%m%d`
    
    
    targetPath="$savepath""$ls_date" #拼接字符串
    # targetPath=${savepath}${ls_date}
    
    #创建今日文件夹
    if [ ! -d ${targetPath} ];then
     mkdir ${targetPath}
     echo "创建今日文件:${targetPath}"
    else
    echo "今日文件夹已经存在"
    fi
    
    
    
    #排除文件
     worker=`ls | grep -v 整理桌面.sh |grep -v ABC.png | grep -ve 每日任务 | grep -ve 每日必看`
     echo "$worker"
     if [ -z "$worker" ]; then
        echo "今日为处理文件为空"
      else
        mv $worker  $targetPath
        echo "今日未处理文件移动到今日文件:${targetPath}"
        workPath2="$savepath""$ls_date""/*"
        function_original "$workPath2"
    
        echo " 今天的剩余任务已经归档到了每日任务. "
    fi
    
    

    另外. 执行完命令后,终端窗口自动关闭
    可在: 终端-偏好设置-描述文件-shell-当 shell 退出时。改下面为关闭窗口就可以了。

    相关文章

      网友评论

          本文标题:使用shell脚本整理桌面

          本文链接:https://www.haomeiwen.com/subject/rcnmwftx.html