2012-03-20 4 views
0

Я пытаюсь дегнуть все файлы в каталоге (echo 1) в архив tar, названный [directory name] .tar в каталоге архива (второй эхо). Это верно ?tar файлы в каталоге и поместить архив в другой каталог

#!/bin/bash 

#Author 
#Josh 
++++++++++++++++++++++++++ 
echo "Please enter the name of a folder to archive" 
++++++++++++++++++++++++++ 
echo "Please enter a foldername to store archives in" 
++++++++++++++++++++++++++ 
touch fname 
+++++++++++++++++++++++++ 
tar fname2.tar 
+0

Это не CodeReview.SE. –

+1

Возможный дубликат [Как мне запрашивать имя файла для архивации, а затем запрашивать у пользователя имя папки для хранения архивов?] (Http://stackoverflow.com/questions/9780649/ как-ду-я-подсказка-пользователь-для-имя-а-папки к архив-то-приглашение-The-нас) –

ответ

2
dir_to_be_tarred= 
while [ ! -d "$dir_to_be_tarred" ]; do  
    echo -n "Enter path to directory to be archived: " # -n makes "echo" not output an ending NEWLINE 
    read dir_to_be_tarred 
    if [ ! -d "$dir_to_be_tarred" ]; then # make sure the directory exists 
     echo "Directory \"$dir_to_be_tarred\" does not exist"  # use quotes around the directory name in case user enter an empty line 
    fi 
done 

storage_dir= 
while [ ! -d "$storage_dir" ]; do 
    echo -n "Enter path to directory where to store the archive: " 
    read storage_dir 
    if [ ! -d "$storage_dir" ]; then 
     echo "Directory \"$storage_dir\" does not exist" 
    fi 
done 

tarfile="$storage_dir"/`date '+%Y%m%d_%H%M%S'`.tar.gz  # the tar archive is named "YYYYMMDD_HHMMSS.tar.gz" 
tar cfz "$tarfile" "$dir_to_be_tarred" 
echo 'Your archive is in: 
'`ls -l "$tarfile"` 
Смежные вопросы