mirror of
https://github.com/uutils/coreutils
synced 2025-01-07 10:49:09 +00:00
mv: move after help to md file
This commit is contained in:
parent
2f975e913e
commit
f83468d530
2 changed files with 21 additions and 21 deletions
|
@ -5,5 +5,17 @@ mv [OPTION]... [-T] SOURCE DEST
|
||||||
mv [OPTION]... SOURCE... DIRECTORY
|
mv [OPTION]... SOURCE... DIRECTORY
|
||||||
mv [OPTION]... -t DIRECTORY SOURCE...
|
mv [OPTION]... -t DIRECTORY SOURCE...
|
||||||
```
|
```
|
||||||
|
|
||||||
Move `SOURCE` to `DEST`, or multiple `SOURCE`(s) to `DIRECTORY`.
|
Move `SOURCE` to `DEST`, or multiple `SOURCE`(s) to `DIRECTORY`.
|
||||||
|
|
||||||
|
## After Help
|
||||||
|
|
||||||
|
Do not move a non-directory that has an existing destination with the same or newer modification timestamp;
|
||||||
|
instead, silently skip the file without failing. If the move is across file system boundaries, the comparison is
|
||||||
|
to the source timestamp truncated to the resolutions of the destination file system and of the system calls used
|
||||||
|
to update timestamps; this avoids duplicate work if several ‘mv -u’ commands are executed with the same source
|
||||||
|
and destination. This option is ignored if the -n or --no-clobber option is also specified. which gives more control
|
||||||
|
over which existing files in the destination are replaced, and its value can be one of the following:
|
||||||
|
|
||||||
|
all This is the default operation when an --update option is not specified, and results in all existing files in the destination being replaced.
|
||||||
|
none This is similar to the --no-clobber option, in that no files in the destination are replaced, but also skipping a file does not induce a failure.
|
||||||
|
older This is the default operation when --update is specified, and results in files being replaced if they’re older than the corresponding source file.
|
||||||
|
|
|
@ -26,7 +26,7 @@ use uucore::backup_control::{self, BackupMode};
|
||||||
use uucore::display::Quotable;
|
use uucore::display::Quotable;
|
||||||
use uucore::error::{set_exit_code, FromIo, UError, UResult, USimpleError, UUsageError};
|
use uucore::error::{set_exit_code, FromIo, UError, UResult, USimpleError, UUsageError};
|
||||||
use uucore::update_control::{self, UpdateMode};
|
use uucore::update_control::{self, UpdateMode};
|
||||||
use uucore::{format_usage, help_about, help_usage, prompt_yes, show};
|
use uucore::{format_usage, help_about, help_section, help_usage, prompt_yes, show};
|
||||||
|
|
||||||
use fs_extra::dir::{
|
use fs_extra::dir::{
|
||||||
get_size as dir_get_size, move_dir, move_dir_with_progress, CopyOptions as DirCopyOptions,
|
get_size as dir_get_size, move_dir, move_dir_with_progress, CopyOptions as DirCopyOptions,
|
||||||
|
@ -56,6 +56,7 @@ pub enum OverwriteMode {
|
||||||
|
|
||||||
const ABOUT: &str = help_about!("mv.md");
|
const ABOUT: &str = help_about!("mv.md");
|
||||||
const USAGE: &str = help_usage!("mv.md");
|
const USAGE: &str = help_usage!("mv.md");
|
||||||
|
const AFTER_HELP: &str = help_section!("after help", "mv.md");
|
||||||
|
|
||||||
static OPT_FORCE: &str = "force";
|
static OPT_FORCE: &str = "force";
|
||||||
static OPT_INTERACTIVE: &str = "interactive";
|
static OPT_INTERACTIVE: &str = "interactive";
|
||||||
|
@ -67,23 +68,9 @@ static OPT_VERBOSE: &str = "verbose";
|
||||||
static OPT_PROGRESS: &str = "progress";
|
static OPT_PROGRESS: &str = "progress";
|
||||||
static ARG_FILES: &str = "files";
|
static ARG_FILES: &str = "files";
|
||||||
|
|
||||||
static MV_UPDATE_LONG_HELP: &str =
|
|
||||||
"Do not move a non-directory that has an existing destination with the same or newer modification timestamp;
|
|
||||||
instead, silently skip the file without failing. If the move is across file system boundaries, the comparison is
|
|
||||||
to the source timestamp truncated to the resolutions of the destination file system and of the system calls used
|
|
||||||
to update timestamps; this avoids duplicate work if several ‘mv -u’ commands are executed with the same source
|
|
||||||
and destination. This option is ignored if the -n or --no-clobber option is also specified. which gives more control
|
|
||||||
over which existing files in the destination are replaced, and its value can be one of the following:
|
|
||||||
|
|
||||||
all This is the default operation when an --update option is not specified, and results in all existing files in the destination being replaced.
|
|
||||||
none This is similar to the --no-clobber option, in that no files in the destination are replaced, but also skipping a file does not induce a failure.
|
|
||||||
older This is the default operation when --update is specified, and results in files being replaced if they’re older than the corresponding source file.";
|
|
||||||
|
|
||||||
#[uucore::main]
|
#[uucore::main]
|
||||||
pub fn uumain(args: impl uucore::Args) -> UResult<()> {
|
pub fn uumain(args: impl uucore::Args) -> UResult<()> {
|
||||||
let mut app = uu_app()
|
let mut app = uu_app().after_help(backup_control::BACKUP_CONTROL_LONG_HELP);
|
||||||
.after_help(backup_control::BACKUP_CONTROL_LONG_HELP)
|
|
||||||
.after_help(MV_UPDATE_LONG_HELP);
|
|
||||||
let matches = app.try_get_matches_from_mut(args)?;
|
let matches = app.try_get_matches_from_mut(args)?;
|
||||||
|
|
||||||
if !matches.contains_id(OPT_TARGET_DIRECTORY)
|
if !matches.contains_id(OPT_TARGET_DIRECTORY)
|
||||||
|
@ -143,11 +130,8 @@ pub fn uu_app() -> Command {
|
||||||
.version(crate_version!())
|
.version(crate_version!())
|
||||||
.about(ABOUT)
|
.about(ABOUT)
|
||||||
.override_usage(format_usage(USAGE))
|
.override_usage(format_usage(USAGE))
|
||||||
|
.after_help(AFTER_HELP)
|
||||||
.infer_long_args(true)
|
.infer_long_args(true)
|
||||||
.arg(backup_control::arguments::backup())
|
|
||||||
.arg(backup_control::arguments::backup_no_args())
|
|
||||||
.arg(update_control::arguments::update())
|
|
||||||
.arg(update_control::arguments::update_no_args())
|
|
||||||
.arg(
|
.arg(
|
||||||
Arg::new(OPT_FORCE)
|
Arg::new(OPT_FORCE)
|
||||||
.short('f')
|
.short('f')
|
||||||
|
@ -175,7 +159,11 @@ pub fn uu_app() -> Command {
|
||||||
.help("remove any trailing slashes from each SOURCE argument")
|
.help("remove any trailing slashes from each SOURCE argument")
|
||||||
.action(ArgAction::SetTrue),
|
.action(ArgAction::SetTrue),
|
||||||
)
|
)
|
||||||
|
.arg(backup_control::arguments::backup())
|
||||||
|
.arg(backup_control::arguments::backup_no_args())
|
||||||
.arg(backup_control::arguments::suffix())
|
.arg(backup_control::arguments::suffix())
|
||||||
|
.arg(update_control::arguments::update())
|
||||||
|
.arg(update_control::arguments::update_no_args())
|
||||||
.arg(
|
.arg(
|
||||||
Arg::new(OPT_TARGET_DIRECTORY)
|
Arg::new(OPT_TARGET_DIRECTORY)
|
||||||
.short('t')
|
.short('t')
|
||||||
|
|
Loading…
Reference in a new issue