انجمنهای فارسی اوبونتو
کمک و پشتیبانی => راهنماها، نکات و ترفندها => نویسنده: obontu در 20 امرداد 1401، 08:31 بظ
-
یک فایل متنی دارم شامل ادرس یکسری فایل(مثل عکس ویدیو و...) میخوام با دستورات ترمینال اون فایلها را داخل یک پوشه کپی کنم
ادرس ها هم به این شکل هست : البته با اردسها و اسامی متفاوت؟
Videos/2/videos/video0102.avi/ .
Desktop/SmartsysSoft.exe/ .
.
.
.
.
-
سلام
میتونید از این روش استفاده کنید:
$ while read line; do cp $line ~/newfolder; done < file.txt
https://www.javatpoint.com/bash-read-file
-
این یکی نمیذاره اگه اسم فایل فاصله داشت یا شامل کاراکترهای کنترلی بود، مشکلی پیش بیاد.
while read -r line; do cp "${line}" ~/newfolder; done < file.txt
-
file.txt که مشخه ولی ~/newfolder چیه؟
اوکی مسیر پوشه هست که اونجا فایلها کپی میشن.
فقط ~ چی میشه؟
مربوط به home میشه؟
-
newfolder/~ میشه دایرکتوری که میخواهید فابلها داخلش کپی بشن. میتونید به جای اون، هر چیز دیگهای که میخواهید بذارید.
-
دو تا فایل زیر را در نظر بگیرید با چه دستوری میتونم تفاوت ها را در یک فایل سوم ثبت کنم اون هم به این صورت که:
اولی را با دومی مقایسه کنه و ثبت کند که چه مواردی در اولی هست که در فایل دوم موجود نیست الان در فایل اول
./Videos/Data/WinMount/3.ini موجود هست ولی در فایل دوم نیست
1.txt
./Videos/Data/2.ini
./Videos/Data/WinMount/3.ini
./Videos/soft98.ir.url
txt.2
./Videos/App/WinMount/1.exe
./Videos/Data/2.ini
./Videos/soft98.ir.url
با دستور diff بعید میدونم بشه چون یکسری توضیحات هم اضافه میکنه که نمیخوام
diff 1.txt 2.txt
0a1
> ./Videos/App/WinMount/1.exe
2d2
< ./Videos/Data/WinMount/3.ini
خروجی ای که من میخوام باید به این صورت باشه :
./Videos/Data/WinMount/3.ini
-
این یکی نمیذاره اگه اسم فایل فاصله داشت یا شامل کاراکترهای کنترلی بود، مشکلی پیش بیاد.
while read -r line; do cp "${line}" ~/newfolder; done < file.txt
while read -r line; do cp "${line}" /home/obuntu/MD5SUM; done < 01.txt
چرا این خطا را میگیره؟
cp: cannot stat './Videos/2/videos/video0102.avi': No such file or directory
cp: cannot stat './Desktop/SmartsysSoft.exe': No such file or directory
-
داره میگه اون فایلها که میخواهد کپی کنه وجود ندارند.
-
داره میگه اون فایلها که میخواهد کپی کنه وجود ندارند.
فایل وجود داره
الان مورد دزیر را ببینید :
این دستوری هست که اجرا کردم
while read -r line; do cp "${line}" /new; done < 014
تو همون دایرکتوری ای که فایل ۰۱۴ هست ترمینال را باز کردم و یک پوشه هم به نام new در اون دایرکتوری وجود داره الان کجای کار ایراد داره؟ در حالی که فایل وجود داره.
cp: cannot stat '/media/win10/0A0A3B070A3AEF771/Documents and Settings/tech/dir_2.txt': No such file or directory
./media/win10/0A0A3B070A3AEF77/Documents and Settings/tech/dir_2.txt
-
درایو mount نبود "." هم نباید اولش داشته باشه.