diff options
author | Gabriel Dalimonte <gabriel.dalimonte@gmail.com> | 2025-02-17 13:26:44 -0500 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2025-03-07 11:50:22 -0600 |
commit | 06159a1465fc97d8d7b72b9bea39a396f6e7057c (patch) | |
tree | 71a27cbcbc587d8157021fb1d8a7cca37ec9c8fc /cmd/fs.c | |
parent | d9c149664fa7a0c2eabfc046dcf89637f655364b (diff) |
fs: fat: add rename
The implementation roughly follows the POSIX specification for
rename() [1]. The ordering of operations attempting to minimize the chance
for data loss in unexpected circumstances.
The 'mv' command was implemented as a front end for the rename operation
as that is what most users are likely familiar with in terms of behavior.
The 'FAT_RENAME' Kconfig option was added to prevent code size increase on
size-oriented builds like SPL.
[1] https://pubs.opengroup.org/onlinepubs/9799919799/functions/rename.html
Signed-off-by: Gabriel Dalimonte <gabriel.dalimonte@gmail.com>
Diffstat (limited to 'cmd/fs.c')
-rw-r--r-- | cmd/fs.c | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -110,3 +110,17 @@ U_BOOT_CMD( fstypes, 1, 1, do_fstypes_wrapper, "List supported filesystem types", "" ); + +static int do_mv_wrapper(struct cmd_tbl *cmdtp, int flag, int argc, + char *const argv[]) +{ + return do_mv(cmdtp, flag, argc, argv, FS_TYPE_ANY); +} + +U_BOOT_CMD( + mv, 5, 1, do_mv_wrapper, + "rename/move a file/directory", + "<interface> [<dev[:part]>] <old_path> <new_path>\n" + " - renames/moves a file/directory in 'dev' on 'interface' from\n" + " 'old_path' to 'new_path'" +); |