svn st | grep ^M
명령을 사용하여 수정된 모든 svn 파일을 얻습니다.
M student/includes/class_student_promotion.php
M student/includes/class_student_report.php
M student/resources/js/student_co_scholistic_activities.js
M staff/php/edit_staff_details.php
M library/includes/class_book_return.php
M library/includes/class_book_item_stock_entry.php
M library/includes/class_library_common_function.php
M library/includes/auto_book_name_list.php
M library/includes/class_book_issue.php
M library/php/book_item_details_entry.php
M includes/connection.php
M includes/links.php
M staff_student/php/student_time_table.php
M assignment/php/ajax_created_assignment_report.php
M assignment/php/ajax_submitted_assignment_report.php
M student_attendance/php/date_wise_attendance_summary_report.php
M student_attendance/resources/js/holiday_master.js
내 요구 사항은 출력에 나열된 파일을 동일한 폴더 구조에 복사하는 것입니다. 생성하려는 폴더를 포함시키고 svn st
그 안에 나열된 파일을 복사하기만 하면 됩니다.
이 명령
cp `svn st | ack '^M' | cut -b 8-` backup
수정된 모든 파일을 디렉토리에 복사하는 것은 가능하지만 수정된 파일을 저장해야 하는 폴더도 생성되어야 한다는 것이 예상됩니다.
답변1
폴더가 디렉터리를 참조하고 파일 및 디렉터리 이름에 공백이나 특수 문자가 없다고 가정합니다.
svn st | ack '^M' | cut -b 8- | cpio -pdmv backup
cpio
통과 모드( ) 입니다 -p
. 표준 입력에서 복사된 파일 이름 목록을 사용합니다. 디렉토리를 생성하고, 수정 시간을 보존하고, 장황하게 만들 수 -d
있도록 허용합니다 . stdin의 모든 파일 이름은 대상 디렉토리에 복사 되고-m
-v
student/includes/class_student_promotion.php
backup/student/includes/class_student_promotion.php