Linux shell脚本:创建一个包含当前日期名称的文件夹

前端之家收集整理的这篇文章主要介绍了Linux shell脚本:创建一个包含当前日期名称的文件夹前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在尝试制作一个简单的备份脚本,我在创建一个名称为curent date的文件夹时遇到问题

我的脚本是那个,基本上问题出在最后一行

  1. drivers=$(ls /media/)
  2. declare -i c=0
  3. for word in $drivers
  4. do
  5. echo "($c)$word"
  6. c=c+1
  7. done
  8. read -n 1 drive
  9. echo
  10. c=0
  11. for word in $drivers
  12. do
  13. if [ $c -eq $drive ]
  14. then
  15. backuppath="/media/$word/backup"
  16. fi
  17. c=c+1
  18. done
  19. echo "doing back up to $backuppath"
  20. cp -r /home/stefanos/Programming $backuppath/$(date +%Y-%m-%d-%T)

输出继电器:

  1. (0)0362-BA96
  2. (1)Data
  3. (2)Windows
  4. 0
  5. doing back up to /media/0362-BA96/backup
  6. cp: cannot create directory `/media/0362-BA96/backup/2012-12-05-21:58:37': Invalid argument

路径是三重检查,直到/ media / 0362-BA96 /

解决了:
    是什么janisz说最终的剧本看起来像

  1. drivers=$(ls /media/)
  2. declare -i c=0
  3. for word in $drivers
  4. do
  5. echo "($c)$word"
  6. c=c+1
  7. done
  8. read -n 1 drive
  9. echo
  10. c=0
  11. for word in $drivers
  12. do
  13. if [ $c -eq $drive ]
  14. then
  15. backuppath="/media/$word/backup"
  16. fi
  17. c=c+1
  18. done
  19. echo "doing back up to $backuppath"
  20. backup(){
  21. time_stamp=$(date +%Y_%m_%d_%H_%M_%S)
  22. mkdir -p "${backuppath}/${time_stamp}$1"
  23. cp -r "${1}" "${backuppath}/${time_stamp}$1"
  24. echo "backup complete in $1"
  25. }
  26. #####################The paths to backup####################
  27. backup "/home/stefanos/Programming"
  28. backup "/home/stefanos/Android/Projects"
  29. backup "/home/stefanos/DropBox"
最佳答案
:在FAT上无效(用于指定磁盘).一些M $无效字符适用于GNU / Linux系统,但避免它们更安全(只需替换为.).使用以下日期格式

  1. date +%Y_%m_%d_%H_%M_%S

它应该适用于大多数文件系统,但对于MS DOS FAT来说可能太长了.更多信息你会发现here.

猜你在找的Linux相关文章